一尘不染

有没有办法在go中将整数转换为bool,反之亦然?

go

是否有内置的方法将布尔值转换为整数,反之亦然?我尝试了普通的转换,但是由于它们使用不同的基础类型,因此经典的转换方式是不可能的。我已经填写了一些规范,但尚未找到答案。


阅读 1791

收藏
2020-07-02

共1个答案

一尘不染

从int到bool很容易,只需x != 0完成操作即可。换句话说,由于Go不支持三元运算符,因此您必须执行以下操作:

var x int
if b {
    x = 1
} else {
    x = 0
}

您当然可以将其放在函数中:

func Btoi(b bool) int {
    if b {
        return 1
    }
    return 0
 }

整数有很多种可能的布尔解释,但它们都不一定是自然的,因此必须说出您的意思是有道理的。

根据我的经验(YMMV),如果您编写好的代码,则不必经常这样做。有时能够基于布尔值编写数学表达式很吸引人,但是您的维护者将感谢您避免使用它。

2020-07-02