从子包装访问全局var

  • 本文关键字:全局 var 访问 包装 go
  • 更新时间 :
  • 英文 :


我正在编写一个小的go应用程序,该应用程序在main中定义了一些全局const。如下:

main.go

package main
import (
    "github.com/JackBracken/global/sub"
)
const AppName string = "global string"
func main() {
    sub.Run()
}

sub/sub.go

package sub
import "fmt"
func Run() {
    fmt.Println(AppName)
}

我很新来,可以期望这样的事情可以正常工作,但是go build抛出了错误 sub/sub.go:6: undefined: AppName

我知道我可以做一些像创建globals软件包一样,在sub.go中导入它,并参考我使用globals.AppName等的全局变量,但是我想知道是否可能是我的原始方法,或者我只是完全误解了范围和软件包?

您无法在其他任何地方访问'主'软件包中的符号,出于简单的原因不允许导入循环。

如果您需要访问" Main"和其他一些软件包中的变量,则需要将变量移动到其他地方,并将变量移至两者都可以访问的软件包。因此,您的" Globals"软件包是正确的主意。

最新更新