通過在JavaFX中查找一些自定義庫https://github.com/HanSolo/submitbutton/blob/master/src/main/java/eu/hansolo/submitbutton/Demo.java。Java邏輯XOR(「^」)與邏輯NOT(「!」)
我用這段代碼走過來:
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;
}
}
}
問題
爲什麼編碼器寫道toggle ^= true;
我的理解它做什麼following the table below:
A B A^B
0 0 0
0 1 1
1 0 1
1 1 0
改爲使用toggle=!toggle;
?
是這樣一種模式,它與任何性能的改善做的,或者是個人喜好?我很好奇,雖然導致我第一次看到這個...
恕我直言,這看起來像不必要的混淆。當你的意思是否定一個布爾值時,你應該使用'!'。 –
看起來像只是吹噓自己對按位運算符的知識(在這種情況下,如果你問我的話是不必要的)。我的2美分。 –
'someReallyLongVariableName^= true;'可能比'someReallyLongVariableName =!someReallyLongVariableName;'更容易閱讀。 – shmosel