如何在golang中的所有包中访问全局变量

前端之家收集整理的这篇文章主要介绍了如何在golang中的所有包中访问全局变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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.

这是另一个例子(也在Go游乐场:https://play.golang.org/p/h2iVjM6Fpk):

package main

import (
    "fmt"
)

var greeting = "Hello,world!"

func main() {
    fmt.Println(greeting)
}

另见Go Tour:“Variables”https://tour.golang.org/basics/8和“Exported names”https://tour.golang.org/basics/3.

猜你在找的Go相关文章