我有一个 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
。
最佳答案
在顶层声明一个变量 - 在任何函数之外:
var Global = "myvalue"
func InitApp() (string) {
var Global= "myvalue"
return Global
}
由于变量的名称以大写字母开头,因此当您导入定义变量的包并将其限定为在:return packagename.Global
.
这是另一个插图(也在围棋 Playground 上:https://play.golang.org/p/h2iVjM6Fpk):
package main
import (
"fmt"
)
var greeting = "Hello, world!"
func main() {
fmt.Println(greeting)
}
另见 Go Tour:“变量”https://tour.golang.org/basics/8和“导出的名称”https://tour.golang.org/basics/3 .
关于go - 如何在所有包中访问全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38655730/