我有两个不同的文件:(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)
....
and handler.go包含所有混乱的东西。
谢谢
答案 0 :(得分:1)
“我想在main.go中使用这两个变量” 不能,因为它们未导出,因此,您需要export。
“为了使Go理解我所指的是db和err变量,我该怎么办?” 您需要qualify。与您使用sql.Open
告诉Go一样,您引用的是包Open
中声明的函数database/sql
。
我也建议您服用Tour of Go。