【发布时间】:2020-02-16 23:46:01
【问题描述】:
是否有可能,以及如何使用这种逻辑进行单行(或只是简短)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,不是JS。 Go 是静态类型的。所以在那个时候,b 不能是未定义的,它可以是 nil(这意味着它是一个指针或引用类型之一),或者是 false,这意味着它是一个 bool。所以你试图做的事情是不可能的。
-
在 go 中没有多大意义。主要是因为值是类型不变的。意思是,如果
b是一个字符串,那么它不能是 nil、false、undefined 或 nan 或其他定义的类型,它必须是一个字符串。至于智能声明和语法糖,Go 不会让你很满意。不要与之抗争。 -
Cerise Limón,好吧,在这种特殊情况下,是的,但总的来说,我一直在寻找所需的语法(但正如许多人所说,这在语言中是不可能的)
标签: go