我习惯使用C / Java,我可以使用?:在:
func g(arg bool) int {
return mybool ? 3 : 45;
}
自Go does not have a ternary operator以来, 我该怎么做呢?
答案 0 :(得分:11)
您可以使用以下内容:
func g(mybool bool) int {
if mybool {
return 3
} else {
return 45
}
}
我为你生成playground进行测试。
正如Atomic_alarm和FAQ指出的那样“Go中没有三元形式。”
作为对“如何将bool转换为int”的问题的更一般的答案,程序员通常期望true为1而false为0,但是在bool和int之间没有直接转换int(true)
或int(false)
将起作用。
在这种情况下,您可以像在VP8中一样创建简单函数:
func btou(b bool) uint8 {
if b {
return 1
}
return 0
}