はじめに
if ~ elseif ~ elseなどで複数条件を処理しているコードを、エンジニアなら誰しも一度は見たことがあると思います。
その条件が何層もネストしているコードにもお目にかかったこともあるでしょう。
今回はそういうコードを、早期リターンを使って読みやすくしてみたいと思います。
早期リターン実施前
/**
* ユーザーの参加資格をチェックする関数
*/
function isUserEligible($user) {
// 18歳以上の場合
if ($user['age'] >= 18) {
// アクティブの場合
if ($user['active']) {
// サブスク契約中の場合
if ($user['hasPaidSubscription']) {
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
早期リターン実施後
/**
* ユーザーの参加資格をチェックする関数
*/
function isUserEligible($user) {
// 18歳未満の場合
if ($user['age'] < 18) {
return false;
}
// アクティブじゃない場合
if (!$user['active']) {
return false;
}
// サブスク契約していない場合
if (!$user['hasPaidSubscription']) {
return false;
}
// すべての条件をクリア
return true;
}
まとめ
このようにネストしていた条件を反転してやって、条件に満たない場合はその時点でリターンしてやると、コードがすっきりとして処理が追いやすく、脳のメモリも節約できる。