如果我将常量声明如下,我在os.Getenv中得到错误' const初始化器(" MY_SECRET")不是常数'。这是为什么?
Go的新手,我看到Getenv的返回类型是一个字符串,但我不明白为什么这不会作为常量工作。
const (
secret = os.Getenv("MY_SECRET")
key = os.Getenv("MY_KEY")
)
答案 0 :(得分:11)
就像错误一样,constant must have a constant value。您无法将其设置为函数的返回值。 必须在编译时进行评估(例如字符串文字)。如果要存储在运行时查找的环境变量的值,则必须将它们存储在变量中,而不是常量中。