如何将bool转换成int?


How do I turn a bool into an int, in go?

我习惯了C/Java,我可以在哪里使用?如:

1
2
3
func g(arg bool) int {
  return mybool ? 3 : 45;
}

因为go没有三元运算符,我该怎么做?


您可以使用以下内容:

1
2
3
4
5
6
7
func g(mybool bool) int {
    if mybool {
        return 3
    } else {
        return 45
    }
}

我为你创造了一个测试场地。

正如原子警报和常见问题解答所指出的,"Go中没有三元形式。"

对于"如何将bool转换为int"的问题,程序员通常希望true为1,false为0,但是go没有bool和int之间的直接转换,因此int(true)int(false)可以工作。

在这种情况下,您可以像在VP8中那样创建普通函数:

1
2
3
4
5
6
func btou(b bool) uint8 {
        if b {
                return 1
        }
        return 0
}