早期リターン
式の値を戻り値としてメソッドの実行を終了。式が省略された場合には nil を戻り値とする。
条件分岐のネストが深くなりすぎてコードを読みにくくなってしまうときに使用すると可読性が高まる。
「Guard Clause」「ガード節」「ガード条件」「ガード構文」と呼ばれることもある。
def invalid_permission?(user)
if user.present? #<= この例外処理はGuard Clauseで書き直せる
case user.permission
when 1,2,3
false
else
true
end
else
true
end
end
def invalid_permission?(user)
return true if user.blank? #<= この1行で例外チェックをネストなしで完了できる
case user.permission
when 1,2,3
false
else
true
end
end