💂
【備忘録】Railsで使う書き方⑤~後置ifとガード節~
この記事の5回目になります。
今回は後置ifとガード節について扱います。
後置if
Rubyのif文は修飾子として文の後ろに置くことができます。
if修飾子は後置ifと呼ばれることもあります。
sample.rb
 point = 7
 day = 1
 if day == 1
   point *= 5
 end
 point #=> 35
上のコードは後置ifを使用することで次のように書くことができます。
sample.rb
 point = 7
 day = 1
 point *= 5 if day == 1
 point #=> 35
1行で書けるのでコードを短縮することができますが、次の記事にある通り、
使用には注意が必要です。
ガード節
ガード節は条件分岐のネストを深くしないための技法の一つです。
具体的に言うと、関数が主に例外的な条件で例外的な値を返すのであれば、処理の冒頭部分で条件判断とreturnを行って例外処理を完結させ、メインの処理に影響を与えないようにすることです。
次のようなコードです。
sample.rb
def service_status
    return nil unless service_started?
    (他の処理)
end
事前処理する例外の数が多いほど有効になります。
ちなみにガード節の後のは1行空けておくことが主流らしいです。
(Rubocopでガンガン指摘されます)
Rubocop
Rubyのコードの静的解析を行うRubocupで指摘を受けることが多いです。
修正できるのであれば修正しています。
  (オフにもできます。)
Discussion