通过查看 JavaFX 中的一些自定义库 https://github.com/HanSolo/submitbutton/blob/master/src/main/java/eu/hansolo/submitbutton/Demo.java .
I came along with this piece of code:
if (toggle) { //where toogle is a boolean
if (progress > 0.75) {
progress = 0;
button.setFailed();
timer.stop();
toggle ^= true;
}
} else {
if (progress > 1) {
progress = 0;
timer.stop();
toggle ^= true;
}
}
}
Question
为什么程序员写了 toggle ^= true;
我明白它的作用 following the table below :
A B A ^ B
0 0 0
0 1 1
1 0 1
1 1 0
而不是使用 toggle=!toggle;
?
这是一种模式,它与任何性能改进有关还是个人偏好?我很好奇,因为我第一次看到这个...
最佳答案
FWIW,它不是 boolean 值之间的“按位运算”。这是一个“逻辑操作”。 boolean 值之间的运算符和整数之间的运算符是不同的,但它们是相关的。
关于Java 逻辑 XOR ("^") 与逻辑 NOT ("!"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782218/