英文:
non-bool value in if condition in Go
问题
我在Go语言中有一个if语句,代码如下:
if level & 1 {
// 做某事
} else {
// 做其他事情
}
在我的代码中,level
变量的类型是uint
。但是当我对1进行按位与操作时,结果并不是布尔值。这在C语言中是有效的语法,但显然在Go语言中不起作用。有没有什么办法可以解决这个问题呢?
英文:
I have an if statement in Go which looks like this:
if level & 1 {
// do something
} else {
// do something else
}
The level
variable in my cause is of type uint
. But when I do bitwise AND with 1, the result is not a boolean. This is a valid syntax for C, but apparently it doesn't work in Go. Any idea how to work around this?
答案1
得分: 23
在Go语言中,if语句必须具有bool
类型的条件表达式,你可以通过使用比较运算符来实现,其结果是一个布尔值:
if level&1 != 0 {
// 做某事
} else {
// 做其他事情
}
英文:
If statements in Go must have type of bool
, which you can achieve by using a comparison operator, the result of which is a bool:
if level&1 != 0 {
// do something
} else {
// do something else
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论