使用package作为全局变量的存储

时间:2017-02-04 10:49:32

标签: go

我正在学习golang,而我的第一项任务就是开始构建一个简单的网站。问题是我需要有一些全局变量,我已经知道使用上下文发送这些全局变量是不明智的,因为每个请求的上下文应该是不同的。因此,我考虑过创建一个将在main()中填充所需变量的包。我还没有在其他项目中看到这个解决方案,所以我问这是不是错了? 配置包的简单示例:

package config
var DB *sql.DB

主要:

package main
import "project/config"
func main() {
 config.DB, err = sql.Open("postgres", conn)
 if err != nil {
    panic(err)
 }
}

然后我只需导入配置包并在需要的地方获取变量。

2 个答案:

答案 0 :(得分:1)

这种方法没有错。您也可以使用init()函数而不是main()来初始化全局变量。

答案 1 :(得分:0)

确实,这是一个非常好的解决方案。