24
20

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 5 years have passed since last update.

rubyで早期return

Posted at

ちょっとrubyでコードを書くことになって、早期returnを使いたくなる場面があったので、そのときの整理。
Javaで結構使っていたのですが、rubyでどう書くか躊躇ったので思い出せるようにメモ。

サンプルコード

def isXXX(arg)
  return false if arg.nil?

  return false if arg == 'hoge' 
 
  return true; 
end

そもそも早期returnとは?

あまり起きないケース、あるいは重要でないケースでifのネストを深くしたり、else句を使うのを避けるためのテクニックです。条件を満たしたときに、後ろに影響を及ぼさないようにすぐにreturnさせる、というそのものずばりです。「ガード節による条件記述の置き換え」ともいうようです。(returnだけでなく例外スローもするケースもあるようです。)

さっきのを早期returnなしで書くとこんな感じです。

def isXXX(arg)
   if (arg.nil) 
      false
   else if (arg == 'hoge')
      false 
   else  
      true
   end  
end

このくらいなら、そんなでもないですが、条件の記述が長くなったり、パターンが多いときは早期returnの形にすると、それぞれを分けて考えやすくなります。

参考サイト

24
20
0

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
24
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?