LoginSignup
3

More than 1 year has passed since last update.

if式やループのネストを減らす方法まとめ

Last updated at Posted at 2022-04-06

結論

  • 早期リターンする
  • 条件式で代入を行う

以上のやり方でネストを減らすことができます。

早期リターンする

例えば、受け取った数字が50より大きいとき2倍にする関数があるとき

早期リターンしない場合。

def double(number)
  if number > 50
    number * 2
  end
end

早期リターンする場合。

def double(number)
  return if number <= 50
  number * 2
end

ループ内の場合はnext if numberでも良いですね。

条件式で代入を行う

例えば、ユーザーを1つ取り出して何かしたいとき

条件式で代入しない場合

def update
  user = User.find(params[:id])
  if user
    ...
  end
end

条件式で代入する場合

def update
  if user = User.find(params[:id])
    ...
  end
end

最後に

ネストがなければ良いというものでもないですが、あまりに深い場合は減らすようにしてもいいかもしれません。

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
3