[英]C++ / Java: Toggle boolean statement?
有一個簡短的方法來切換布爾值?
使用整數,我們可以執行以下操作:
int i = 4;
i *= 4; // equals 16
/* Which is equivalent to */
i = i * 4;
那么布爾值也有一些東西(比如整數的*=
運算符)?
在C ++中:
bool booleanWithAVeryLongName = true;
booleanWithAVeryLongName = !booleanWithAVeryLongName;
// Can it shorter?
booleanWithAVeryLongName !=; // Or something?
在Java中:
boolean booleanWithAVeryLongName = true;
booleanWithAVeryLongName = !booleanWithAVeryLongName;
// Can it shorter?
booleanWithAVeryLongName !=; // Or something?
沒有這樣的運算符,但這有點短: booleanWithAVeryLongName ^= true;
一個簡單的函數(在C ++中):
void toggle (bool& value) {value = !value;}
然后你使用它像:
bool booleanWithAVeryLongName = true;
toggle(booleanWithAVeryLongName);
我認為一個更好的類比是你正在尋找一元運算operator ++
的布爾等價物,我很確定它不存在。
我從來沒有真正想過它,但我猜你總是可以將它與TROR異或:
booleanWithAVeryLongName ^= TRUE;
不確定它可以節省多少,但讀起來有點痛苦。
不完全是這樣,但在C / C ++中,存在具有賦值的按位AND / OR運算符。
對於表達式之間的邏輯ANDS / OR,我認為沒有。
但是,在C中你沒有真正的bool類型,只是整數,所以你可以使用整數運算符來完成這樣的快捷方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.