1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

早期リターン(ガード節)の書き方メモ

Last updated at Posted at 2021-10-10

勉強したはずなのに早期リターンの書き方の方がいいよと指摘されたときにそれなんだっけってなったので(やばい)思い出しがてらメモです。リーダブルコードにも書いてあって勉強した気がしますが記憶が抹消されていました。

#早期リターン(ガード節)とは
メソッドなどで処理の終端に到達する前に、条件を満たしたときにはすぐにreturn や continue/break で抜ける方法です。

#書き方
ageデータがある場合に年齢を判断して乳幼児、未成年、成人を返す関数があるとします。

.js
function checkAge(age) {
    let result;
    if (age != null) {
         if (age == 0) {
             result = "乳幼児"
          } else if (age < 20) {
            result = "未成年"
          } 
          else if (age >= 20) {
            result = "成人以上"
          }
     } else {
        result = "年齢情報なし"
     }  
     return result
}

正常系コードがネストの深い位置にあります。今回は簡単な例ですが、処理がもっとあった場合など、他の人が処理を追う時にパッとはわかりづらい。。。

 
早期リターンの書き方で書いてみましょう。

.js
function checkAge(age) {
    if (age == null) { 
        return "年齢情報なし"
    }
    if (age == 0) { 
        return "乳幼児"
    }
    if (age < 20) { 
        return "未成年" 
    }
    if (age >= 20) { 
        return "成人以上"
    }
}

スッキリかけました。どの場合になにを返すのかわかりやすいです。
また、nullの判定を最初に持ってきています。もっと細かい処理があったとしてもnullの場合は後述の判定をすることなくすぐに抜けることができるので余計なコードを読み込まなくなります。

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?