gpt4 book ai didi

java - Object.var-- 和 Object.var-=1 的区别?

转载 作者:行者123 更新时间:2023-11-29 03:00:35 30 4
gpt4 key购买 nike

今天,我的 IDE 发出了一个奇怪的警告,针对一段代码而没有针对另一段(假定相同的)代码发出警告。下面的一段代码表示 if 条件始终为假:

public void foo(Node n) {
assert(n.var > 0);
n.var--;
if (n.var == 0) {
// do stuff
}
}

虽然以下操作没有任何警告:

public void foo(Node n) {
assert(n.var > 0);
n.var -= 1;
if (n.var == 0) {
// do stuff
}
}

有以下类:

public class Node {
private int var;
}

虽然第一个警告显然是无稽之谈,但我想知道 var--var-=1 之间是否真的有区别..?这实际上是针对我的 IDE 的警告吗?如果没有,请在评论中告诉我,我会相应地编辑这篇文章。

最佳答案

区别在于

int var = 1;
int x = (var -= 1); // x == 0

int x = var--; // x == 1 as the -- is post decrement.

注意:区别主要在于作为独立声明的风格问题。我更喜欢较短的 x--x++ 而不是 x-=1/x+=-1x+=1

关于java - Object.var-- 和 Object.var-=1 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35249196/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com