我有一个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我要声明,可在我的应用程序的任何地方访问的全局变量。有可能吗?我试过了:
router.InitMap
func InitApp() (*gin.Engine,string) { var Global= "myvalue" router := gin.New() return router,Global }
但是,Global即使在同一包中,我也无法访问变量。
Global
在顶层声明变量-在任何函数之外:
var Global = "myvalue" func InitApp() (string) { var Global= "myvalue" return Global }
由于变量的名称以大写字母开头,因此在导入定义变量的包并使用包名对其进行限定时,变量将在当前包中通过其名称可用-在任何其他包中都可用return packagename.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:“变量” https://tour.golang.org/basics/8和“导出的名称” https://tour.golang.org/basics/3。