隨着紅寶石三元運營商,我們可以寫出下面的邏輯簡單if else結構:Ruby if if ... elsIf .. else在單行上?
a = true ? 'a' : 'b' #=> "a"
但如果我想寫這是if foo 'a' elsif bar 'b' else 'c'
什麼?
我可以寫爲以下,但它是一個有點難以遵循:
foo = true
a = foo ? 'a' : (bar ? 'b' : 'c') #=> "a"
foo = false
bar = true
a = foo ? 'a' : (bar ? 'b' : 'c') #=> "b"
是否有處理這種情況下任何更好的選擇,或者這是我們最好的選擇,如果我們希望凝聚如果。 .elsif ..使邏輯成一行?
我認爲嵌套三元解決方案缺乏可讀性的問題在於,將所有這些放在一行上本質上難以閱讀,而且您提出的任何解決方案都將更容易解析。 –
換句話說,憑藉更多的經驗,您將會了解到儘可能多地將代碼擠入儘可能小的空間永遠不是一個有效的目標。 –
「將盡可能多的代碼擠入儘可能小的空間永遠不是一個有效的目標。」除了機器碼。 –