看板 MacDev 關於我們 聯絡資訊
※ 引述《kiii210 (Johnny.T)》之銘言: : 之前在找sample code常常會看到這樣的寫法 : int i; : int count; : i = (count==0) ? 1 : 2; : 如此一來便能代替 : if (count==0) { : i = 1; : } else { : i = 2; : } : 省下很多空間 : 不過我卻一直查不到這個用法的名稱叫做什麼XD : 有人知道嗎? : 另外這只有限Obj-C才有嗎?還是其他語言也有類似用法 : 感恩 三元運算子濫用會造成很大的閱讀上的困難 比方說 max = (a > b) ? (a > c) ? a : (b > c) ? b : c; (隨手寫的沒驗證 不過應該沒錯) 這東西誰看得懂....(可是我常常這樣寫(遮臉)) 這東西主要是用在一些if-else沒辦法寫的地方 比方說 NSLog(@"%@", [a getInfo] == nil ? @"No Info!" : @"Have Info!"); 這也當然不是完全不能if-else 只是用這三元運算子會簡單好懂很多 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.251.135 ※ 編輯: Killercat 來自: 59.124.251.135 (05/27 10:18)
nobody1:max = (a > b) ? (a > c) ? a : (b > c) ? b : c 錯了 05/27 11:45
nobody1:多加幾個括號會比較好讀吧 05/27 11:45
kiii210:感恩 有多學了一課 05/27 11:58
chchwy:同意 有些小地方三元運算子比if-else好用許多 05/29 13:44