是否有可能,以及如何使用这样的逻辑进行单行(或只是简短)var 赋值:
a := b (or if b is false, nil or undifined, then a equals to) "hello"
我试着做:
a := b | "hello"
但出现错误:“运算符 | 未在字符串上定义”。
所以我来自JS,并试图实现:
const a = b || "hello";
但在一个“Go-way”
因为它是静态类型的 Lang,我的意思是如果 b == ""(空字符串)
最佳答案
没有像这样的 Go 语法。使用 if 语句。|
的操作数必须是整数。 ||
的操作数必须是 bool 值。
更重要的是,一个string
不能是 false
或 nil
.
鉴于 OP's actual goal是为环境变量提供默认值,测试应该在 os.LookupEnv 的 bool 返回值上进行,而不是字符串值。使用这样的函数:
func getenv(key string, def string) string {
val, ok := os.LookupEnv(key)
if !ok {
val = def
}
return val
}
关于go - 如何使用 "or"进行变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58476932/