[討論] 寫三元判斷式code review被打槍

軟工

1651116

小弟寫java的

以前常常寫三元判斷式

就比如說

String a;
if(con) {
a= "aaa";
} else {
a="bbb";
}

這樣就要佔掉六行

所以我通常都是寫

String a= con ? "aaa" : "bbb";

從五行變成一行

在我看來簡潔又方便

但最近給一個資深前輩code review的時候

他說不要用三元判斷式

因為不好閱讀

他工作那麼久也從來不用三元判斷式的

而且java有很多套件都可以用來取代三元判斷式

所以用三元判斷式真的不好嗎?

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.188.168 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1670949794.A.611.html
qwer3388591樓大部分情況都會變更難閱讀 12/14 00:48
orangelite2樓不會耶我覺得還好,不要有巢狀連續判斷的話我能接受 12/14 00:49
orangelite3樓 12/14 00:49
tsao12114樓如果短的話算很好讀吧 12/14 00:50
xam5樓看情況,如果確定只會是簡單狀態變換就沒差,但如果以後會變成a 12/14 00:53
xam6樓re a2 a3,b1 b2那我甘願一開始就用括號寫 12/14 00:53
dnabossking7樓缺點多多 12/14 00:55
TSW8樓邏輯簡單或是很短的方法裡面用短的三元OK 12/14 00:57
TSW9樓其他地方就有人會看漏 12/14 00:57
TSW10樓有些團隊是避免爭論所以完全禁用,所以不要用最省事 12/14 00:59
GLaDOS110511樓consistency 最重要 如果原本 codebase 就沒有用它就 12/14 01:00
GLaDOS110512樓不要用 12/14 01:00
humanfly13樓code style有規定就別用,大家一致 12/14 01:00
shomingchang14樓不一樣的東西吧 三元運算有回傳值 12/14 01:14
keel9013515樓判斷單一ok 不要判斷>2個就好 12/14 01:33
qwe7030216樓就怕嵌套多層,跟鬼一樣,看那一堆冒號直接中風 12/14 01:36
yyhsiu17樓佔掉六行真的沒那麼誇張… 不然 IDE 也可以處理 12/14 01:44
BlacksPig18樓如果有參與開發的任何一個人不懂,那就不要 12/14 01:56
k7ji91ab5m19樓這種比較簡單的 真的沒甚麼好避免的 12/14 02:23
wulouise20樓要:多:潮:有?多?巢? ;問回傳值為多少 12/14 02:28
Lhmstu21樓要看實際例子才準 12/14 02:36
alan310022樓目的是利於閱讀吧 行數根本不是重點 12/14 03:02
bill020523樓如果只有二元判斷那還好 如果是多重判斷 寧願你寫if el 12/14 06:02
bill020524樓se 甚至seitct更為好讀 12/14 06:02
bill020525樓switch 12/14 06:02
pttano26樓程度不好還學人review 啥小,可憐喔 12/14 06:49
Royne27樓他的問題 12/14 06:50
CoNsTaR28樓if else 加 log 方便,擴展邏輯也方便 12/14 07:01
CoNsTaR29樓ternary 除了少打幾個字以外有啥優點? 12/14 07:01
sakyle30樓你可以用 String a; a = "bbb"; if(con) a = "aaa"; 12/14 07:01