亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 如何在其他包文件中使用 struct?

Golang 如何在其他包文件中使用 struct?

Go
GCT1015 2023-06-12 14:32:05
我是Golang的新手,需要一些幫助。正如您在下面的代碼中看到的,我正在嘗試在 Golang 中創建 REST API。我使用mux(Gorilla Mux) 和pq(PostgreSQL driver) 作為第三方庫。不想使用 ORM。在文件內部application.go,我有InitializeRoutes一個包含所有可行路線列表的函數。GetFactors函數處理這些路由之一。我試圖GetFactors在其他名為factors.go. 內部factors.go文件我想使用Application在application.go. 如何正確制作?現在你可以看到它們在不同的包中。這就是為什么factors.go文件看不到Application結構的原因。項目結構:main.goapplication.gocontrollers    factors.go主要去:package mainfunc main()  {    application := Application{}    application.Initialization()    application.Run("localhost:8000")}應用程序去:package mainimport (    "database/sql"    "github.com/gorilla/mux"    "log"    "net/http"    "rest-api/configurations")type Application struct {    Router *mux.Router    Database *sql.DB}func (application *Application) Initialization() {    var err error    application.Database, err = configurations.DatabaseConnection()    if err != nil {        log.Fatal(err)    }    application.Router = mux.NewRouter()    application.Router.StrictSlash(true)    application.InitializeRoutes()}func (application *Application) Run(address string) {    log.Fatal(http.ListenAndServe(address, application.Router))}func (application *Application) InitializeRoutes() {    application.Router.HandleFunc("/api/factors", application.GetFactors).Methods("GET")    // other code}控制器/factors.go:package controllersimport (    "net/http")func (application *Application) GetFactors(rw http.ResponseWriter, request *http.Request) {    // code}
查看完整描述

1 回答

?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

main.go

routes

? ? routes.go

controllers

? ? factors.go

models

? ? factors.go

主要去:


import (

? ? "your_project_name/routes"

)


func main()? {

? ? // code

? ? router := mux.NewRouter()

? ? routes.Use(router)

? ? // code

}

路線/路線.去:


package routes


import (

? ? "github.com/gorilla/mux"

? ? "your_application_name/controllers"

)


func Use(router *mux.Router) {

? ? router.HandleFunc("/api/factors", controllers.GetFactors).Methods("GET")

}

控制器/factors.go:


package controllers


var GetFactors = func(res http.ResponseWriter, req *http.Request) {

? ? // code

}


查看完整回答
反對 回復 2023-06-12
  • 1 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號