如果我如下声明常量,我会得到错误‘os.Getenv("my_ret")中的常量初始值设定项不是常量’.这是为什么呢?

New to Go,我看到Getenv的返回类型是一个字符串,但我不明白为什么它不能作为常量工作.

const (
    secret     = os.Getenv("MY_SECRET")
    key        = os.Getenv("MY_KEY")
)

推荐答案

就像错误说的,constant must have a constant value分.您不能将其设置为函数的返回.它must在编译时被判断(例如,字符串文字).如果您希望存储在运行时查找的环境变量的值,则必须将它们存储在变量中,而不是常量中.

Go相关问答推荐

如何在另一个文件夹中使用Delve运行二进制文件?

golang 的条件储存库

map 中的多个函数类型,Golang

Golang中的泛型 struct /接口列表

如何在链接中写入链接

这种合并排序的实现有什么问题?

如何从 Go Lambda 函数返回 HTML?

替换字符串中的最后一个字符

获取 nil 指针类型的 reflect.Value

MQTT 客户端没有收到另一个客户端发送的消息

go - 仅在函数即将返回错误时清理资源

拆分文本并按空格获取字符串数组,如果文本长度超过 500,则获取字符串数组

Wire google Inject with multi return from provider 函数

Golang:隐式 struct 匹配

Golang - 无法从 pipped Windows 命令中获取结果

Go:用于 XML 解码的嵌套 struct 中的提升字段

如何在 Unmarshal 中使用泛型(转到 1.18)

退格字符在围棋操场中不起作用

有没有办法在golang中映射一组对象?

将函数的值作为输入参数返回给另一个