我有一个 main.go 文件,其中包含:
// running the router in port 9000
func main() {
router,Global := routers.InitApp()
fmt.println(Global)
router.RunTLS(":9000" , "domain.crt" , "domain.key")
}
在 router.InitMap
我想声明一个全局变量,它可以在我的应用程序的任何地方访问。有可能吗?我试过了:
func InitApp() (*gin.Engine,string) {
var Global= "myvalue"
router := gin.New()
return router,Global
}
但我无法访问变量 Global
即使在同一个包中。
原文由 codec 发布,翻译遵循 CC BY-SA 4.0 许可协议
在顶层声明一个变量——在任何函数之外:
由于变量的名称以大写字母开头,因此变量将通过其名称在当前包中可用 - 以及在导入定义变量的包并使用包名称限定它时在任何其他包中可用,如下所示:
return packagename.Global
。这是另一个例子(也在 Go playground 中:https: //play.golang.org/p/h2iVjM6Fpk ):
另请参阅 Go Tour:“变量” https://tour.golang.org/basics/8 和“导出的名称” https://tour.golang.org/basics/3 。