パンくず
リファクタリング-プログラマーの体質改善テクニック
条件式の単純化
ガード節による入れ子条件記述の置き換え
内容
リファクタリング名
ガード節による入れ子条件記述の置き換え
適用ケース要約
正常な実行経路がはっきりしないような条件分岐を持つメソッドがある
適用内容要約
すべての特殊条件をガード節で処理する
適用詳細
※「ガード節」:ある処理を続けるために真と評価しなければならない条件
正常系のみで分岐が発生する場合はif,elseif,elseなどが必要ですが、
ガード節の場合は条件を満たした場合はreturnします。
サンプルコード
# encoding: Shift_JIS def not_null_nil_message(message) if message.nil? return "error" elsif message.empty? return "error" else return message end end puts not_null_nil_message(nil) puts not_null_nil_message("") puts not_null_nil_message("hoge")
# encoding: Shift_JIS def not_null_nil_message(message) return "error" if message.nil? return "error" if message.empty? return message end puts not_null_nil_message(nil) puts not_null_nil_message("") puts not_null_nil_message("hoge")
出力(共通)
error error hoge