単純に見栄えくらいしか変わらんと思っていた後置if
と後置unless
は、ちゃんと使いどころがある。
下のコードの場合、X
であるか、そうでないかの2パターンしか存在しない。そうした場合、その条件を網羅していることを視覚的に伝えるためには、三項演算子
とif式
を使った方がわかりやすい。
逆に後置if
と後置unless
を使うような状況としては、『aのパターンだけ特別に違う処理を実行したい』というようなとき。そうしてあげることで、『たまにaのパターンがあるんだな』ということがわかるようになる。
# 修正前のコード scores.each do |s| shots << 10 if s == 'X' shots << s.to_i unless s == 'X' end # 修正後のコード 三項演算子ver. scores.each do |s| shots << (s == 'X' ? 10 : s.to_i) end # 修正後のコード if式ver. scores.each do |s| shots << if == 'X' 10 else s.to_i end end