go - 如何调用在根包上声明的变量

标签 go global-variables

我的根文件夹 (MyPackage) 上有一个 version.go。

package MyPackage
var (
    Version = "undifened"
    Hash = "undifined"
)

我在 MyPackage/cmd/bootloader/bootloader.go 上找到了第二个文件

package main
import(
       "MyPackage"
       "fmt"
)

func main() {
     fmt.Println(MyPackage.Version)
}

但我在 gotype 上收到未声明的名称:MyPackage“MyPackage”已导入但未用作 ext,我不知道如何修复。

我尝试执行这个 gotype bootloader.go 并得到它。

bootloader.go:9:14: undeclared name: MyPackage
bootloader.go:4:2: "MyPackage" imported but not used as ext

如果有任何帮助,我将不胜感激。

编辑:这与 Golang Global Variable access 不同因为这会破坏那些变量的目的,因为我不想在每个 main.go 上重写它。因为我想用 -ldflags 构建 main.go 来设置变量的值。

最佳答案

如果有人有这个,在主包所在的目录上执行 go install,使 gotype 停止吐出消息。

关于go - 如何调用在根包上声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43706088/

相关文章:

html-parsing - 使用 go-html-transform 预处理 HTML : Replace fails

javascript - 在函数中使用全局变量的副本

global-variables - 从 Julia 中的另一个模块更改全局变量的内容

javascript - 如何在 vue.js 中全局公开 app.vue 中的变量

php - 为 "$GLOBALS"构造的可变变量字符串在全局范围内工作,但不在函数范围内

go - 松弛集成 : 404 Expired url https://hooks. slack.com/commands

linux - 如何在 Go 中将消息打印到 stderr?

go - 找不到共享库的包

Go:匿名函数只取范围内的最后一个值

javascript - 试图找到一种正确的方法来全局访问 Canvas