为什么是零?它已经困扰了我大约三个小时。主要.gopackage mainimport ( "sample/db")func main() { println(db.Xorm) //nil...why...?}数据库/异物语package dbimport ( _ "github.com/lib/pq" "xorm.io/xorm")var Xorm *xorm.Enginefunc init() { url := "user=test host=localhost password=test port=15432 dbname=test sslmode=disable" Xorm, err := xorm.NewEngine("postgres", url) _ = Xorm println(Xorm) //This is not nil if err != nil { panic(err) }}当我在 db/xorm.go 中定义 “样本变量字符串” 并从 main.go 导入时,它不会为零。
1 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
生产线
Xorm, err := xorm.NewEngine("postgres", url)
(请注意 )正在函数的作用域内创建一个新的局部变量,该变量隐藏具有相同名称的包级变量,因此,包级变量将保留 。:=Xorminit()nil
仅用于分配应该可以解决问题,例如:=
var err error
Xorm, err = xorm.NewEngine("postgres", url)
- 1 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消