是否有一個特殊的名字在做條件分配?下面是一個例子就是我用C問:你在有條件的情況下稱做什麼工作?
// Assume a and b have been previously defined and are compatible types
if((a = b)) { // <- What do you call that?
//do something
}
我的一對夫婦朋友,我相信,有它的名稱,以及其他一些人都認爲只有一個,但我們無法在任何地方找到它。有沒有人聽說過這個詞?
如果我看到這樣的代碼,我傾向於稱之爲「錯誤」。它通常被認爲是'a == b'。但它也可能是故意的。 – Yunnosch
@Yunnosch哈哈,你打敗了我。如果是故意的,最好用'如果((a = b))'''中的雙parens來表示。 GCC和Clang都有一個'-Wparentheses'選項,可以警告你,如果你在一個條件內進行賦值而沒有雙引號。 –
在Swift中被稱爲「可選展開」。 ;) –