如何在所有包中访问全局变量
我有一个main.go文件,其中有:
// running the router in port 9000func 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。
这是另一个示例(同样在Go游乐场中:https :
//play.golang.org/p/h2iVjM6Fpk):
package mainimport (
"fmt"
)
var greeting = "Hello, world!"
func main() {
fmt.Println(greeting)
}
另请参阅Go Tour:“变量”
https://tour.golang.org/basics/8和“导出的名称”
https://tour.golang.org/basics/3。
以上是 如何在所有包中访问全局变量 的全部内容, 来源链接: utcz.com/qa/415160.html