💂
【備忘録】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