Go中的if条件中的非bool值

typ*_*pos 7 go

我在Go中有一个if语句,如下所示:

if level & 1 {
    // do something
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

level我的原因中的变量是类型uint.但是当我用1进行按位AND时,结果不是布尔值.这是C的有效语法,但显然它在Go中不起作用.知道如何解决这个问题吗?

Tim*_*per 17

如果Go中的语句必须具有类型bool,可以使用比较运算符来实现,其结果是bool:

if level&1 != 0 {
    // do something
} else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)