[英]What is the equivalent of else do nothing using the conditional operator?
我想知道if語句的等價物:
if (condition) {
// do something
}else{
// do nothing
}
使用條件運算符:
(condition) ? // [do nothing] : {do nothing} "
使用條件運算符不可能“無所事事”。 你總是必須在兩邊都有有效的表達式,盡管這兩個表達式都可以被轉換為void
。
這是三元運算符(?:)的不利之處。
它需要三個地方的表達。 你不能跳過他們中的任何一個。
您可以對其進行一些調整,但其True-part和/或False-part可以分配給:
int big=100;
big= (10 > 100) ? 0 : big;
if (!condition) {
// do something
}else{
// do nothing
}
現在看一下!之前的匯款:-)
的! 條件之前只需將“if”切換為“if not”......
那是你一直在尋找的嗎?
originalValue = (condition) ? newValue : originalValue
然后編譯器應該刪除對原來不必要的originalValue賦值。
海灣合作委員會有一個擴展,可以給你更多的東西給你所尋找的東西,比如
originalValue = condition ?: newValue;
因此它也可以在clang中使用。 你必須! 雖然條件。
在普通代碼中,答案是沒有等價的 - 表達式的所有子表達式都必須有一個值,但......
以下不是推薦
以下內容應該適用於一般情況:
condition ? ( (^{ do something })(), 0 ) : 0;
這是一般情況。 如果做某事是單一的,非復合的,陳述; 如方法調用; 然后可以刪除該塊以給出:
condition ? (do something, 0) : 0;
在實際代碼中不建議這樣做!
你可以做這樣的事情
someBool ? [self someFunction] : (^{})(); //empty block
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.