我有两个不同的文件:(1)/common/handler.go 和 (2) main.go。
在(/common/handler.go)文件中,我声明了
var db *sql.DB
var err error
作为全局变量(在顶层,导入下面)。现在,我想在我的 main.go 文件中使用这两个变量,因为我的 main() 函数中有这行代码:
db, err = sql.Open("mysql","username:password@tcp(127.0.0.1:3306)/test123")
我应该怎么做才能让 Go 理解我指的是 db 和 err 变量?我什至以正确的方式这样做吗?如果没有,请告诉我最佳解决方案。
我之所以拆分成这两个文件是因为我想让代码更干净。
基本上,main.go 中的 main() 包含
router := mux.NewRouter()
router.HandleFunc("/", common.login)
....
handler.go 包含了所有乱七八糟的东西。
谢谢,
最佳答案
“我想在我的 main.go 中使用这两个变量” 你不能因为它们未导出,因此你需要 export他们。
“我应该怎么做才能让 Go 理解我指的是那个 db 和 err 变量?”您需要 qualify他们。这与您使用 sql.Open
告诉 Go 您指的是在包 database/sql
中声明的函数 Open
没有什么不同。
我还建议您使用 Tour of Go .
关于go - 来自不同文件的全局变量 Golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57404793/