当前位置: 首页 > 面试题库 >

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

袁枫涟
2023-03-14
问题内容

我有一个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:“变量”
https://tour.golang.org/basics/8和“导出的名称”
https://tour.golang.org/basics/3。



 类似资料:
  • 问题内容: 如何在其他.go包/文件中的main.go中访问已声明/初始化的变量?不断告诉我变量未定义(我知道全局变量不好,但这只是用作时间戳记) 在main.go中 尝试访问其他.go文件中的StartTime,但保持未定义StartTime 问题答案: 我将改为“注入” starttime变量,否则在软件包之间会有循环依赖关系。 main.go otherpackage.go

  • 问题内容: 我有这个: 我如何才能实际修改全局变量g_c? 问题答案: 通过在访问它的函数中声明它: 在Python文档说这个,有关声明: 全局语句是一个声明,适用于整个当前代码块。

  • 问题内容: 首先,我检查了一下,但没有发现涉及我的问题的文章。 如何在angularJS内置指令中访问预定义的js全局变量? 例如,我在 然后我写一个AngularJS指令: 这实际上是行不通的。 然后我得知我应该使用 所以我在其他地方写了代码: 而且这显然不能正常工作……这就像一个恶性循环。您需要访问预定义的js全局变量,然后需要使用ng-init;为了使用ng-init,您需要访问全局变量。

  • 我在下面定义了一个全局js变量(@Url是ASP.Net MVC html帮助程序,它将转换为字符串值): 如何访问angular2组件中的rootVar?我曾经在Angular1.5中使用窗口服务,在angular2中有类似的方法吗? 具体来说,我想使用该rootVar变量来帮助在该组件中生成templateUrl:

  • 问题内容: 好的,所以我使用Jekyll建立了一个博客,您可以在文件中定义变量,所有模板/布局均可访问该变量。我目前正在使用带有EJS模板和ejs- locals的 Node.JS / Express(用于局部 /布局。我正在寻找与全局变量类似的方法,如果有人熟悉Jekyll ,就会发现这些变量。我有像网站的标题(而不是页面标题),作者/公司名称,在我所有页面上都保持不变。 这是我目前正在做的一个

  • 问题内容: 我正在尝试通过常规函数访问全局变量,这可能吗? 我已经使用$ rootScope设置了一些变量,并且我试图通过回调函数来访问它。从控制器调用此回调。我不想传递该回调。 有什么办法可以访问吗? 我愿意使用服务。 请提出建议。 谢谢 我试图按以下方式访问rootScope: 我的服务是: 它在updateStatus fn下显示isFBLoggedin为true,但未反映在视图上 我正在打