【发布时间】:2015-10-07 22:50:31
【问题描述】:
我习惯了 C/Java,我可以在哪里使用 ?: 如:
func g(arg bool) int {
return mybool ? 3 : 45;
}
自从Go does not have a ternary operator, 我该怎么做?
【问题讨论】:
标签: go
我习惯了 C/Java,我可以在哪里使用 ?: 如:
func g(arg bool) int {
return mybool ? 3 : 45;
}
自从Go does not have a ternary operator, 我该怎么做?
【问题讨论】:
标签: go
您可以使用以下内容:
func g(mybool bool) int {
if mybool {
return 3
} else {
return 45
}
}
我生成了一个playground 供你测试。
正如 Atomic_alarm 和 FAQ 所指出的,“Go 中没有三元形式。”
作为对“如何将 bool 转换为 int”的问题的更一般的回答,程序员通常期望 true 为 1,false 为 0,但 go 在 bool 和 int 之间没有直接转换,例如int(true) 或 int(false) 将起作用。
在这种情况下,您可以像在VP8 中那样创建普通函数:
func btou(b bool) uint8 {
if b {
return 1
}
return 0
}
【讨论】: