我正在尝试将以下 C 代码移植到 Go:
if (x == 0 || x-- == 0) {
// Stuff
}
这在 Go 中是不合法的,因为我不能在检查子句中修改 x
。
没有例如,在 Go 中表示它的好方法是什么?复制 block 的内容?
最佳答案
如果 x--
是一个拼写错误,应该是 --x
,那么我将对 x
进行明确的更改:
if x == 0 || x == 1 {
x = 0
// Stuff
} else {
x--
}
否则,您的 C 代码有错误。如果 x == 0
为 false,则 x-- == 0
也将为 false,因为您使用的是后增量运算符。因此,代码相当于:
if (x == 0) {
// Stuff
} else {
x--;
}
关于c - 将 C 移植到 Go,在 if 检查中修改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48610855/