是否有内置的方法将布尔值转换为整数,反之亦然?我尝试了普通的转换,但是由于它们使用不同的基础类型,因此经典的转换方式是不可能的。我已经填写了一些规范,但尚未找到答案。
从int到bool很容易,只需x != 0完成操作即可。换句话说,由于Go不支持三元运算符,因此您必须执行以下操作:
x != 0
var x int if b { x = 1 } else { x = 0 }
您当然可以将其放在函数中:
func Btoi(b bool) int { if b { return 1 } return 0 }
整数有很多种可能的布尔解释,但它们都不一定是自然的,因此必须说出您的意思是有道理的。
根据我的经验(YMMV),如果您编写好的代码,则不必经常这样做。有时能够基于布尔值编写数学表达式很吸引人,但是您的维护者将感谢您避免使用它。