2016-01-24 33 views
0

有速記運營商爲基本的算術運算符,如:速記賦值運算符,反轉布爾

x = x+2; 
x += 2; 

y = y*2; 
y *= 2; 

不過,我想知道是否有任何這樣的操作可能簡單地反轉布爾值的值。

例如,假設z = true,有沒有短相當於:

z = !z; 

我知道它不能只是!z,因爲那將只是返回的z相反的價值,但它止跌」不會改變它的價值。

我知道我很懶惰,但我在代碼中使用了很多,並試圖儘可能優化它。我儘量避免重複使用變量名,以保持它更清潔和更優雅。

此外,我使用JavaScript進行編碼。

+1

'ž =!z'是和'y * = 2'相同的字符數。你希望得到它的時間縮短了多少? – Riaz

+1

來吧人! ... 2個額外的字符太繁瑣了?創建一個鍵盤快捷方式,如果它工作太多 – charlietfl

+0

@charlietfl更長的變量名稱= P ...但我只是想知道是否有任何快捷方式。我喜歡簡潔。 –

回答

2

就我個人而言,我只會否認你做這件事的方式。但如果真的對你很重要,你能負擔得起放棄boolean類型,只是用數字內部表示(真== 1,假== 0)和位運算符來否定它:

z = true; // z is type boolean 
z ^= 1; // z is now false, but its type is number 
      // (z == false) evaluates to true and you can still do things like if (z)... 
z ^= 1; // z is now true again 
+0

有趣的解決方案。我沒有想到bitewise操作員。 –