javafx Java逻辑异或(“^”)与逻辑非(“!”)
通过查看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;
这是一种模式,它与任何绩效改进有关,还是个人偏好?我很好奇,因为我第一次看到这个
# 1 楼答案
FWIW,这不是布尔运算之间的“逐位运算”。这是一种“逻辑操作”。Boolean和Int之间的运算符是不同的,尽管它们是相关的