Rubyメソッドのreturn - Rubyプログラミング(13)

プログラミング、サーバー、ネットワーク、IT用語、ハマったときのトラブルシューティングなど様々なIT関連の話題をひたすら書いていく技術ブログです。

2017年2月12日日曜日

Rubyメソッドのreturn - Rubyプログラミング(13)


メソッドが何を返すかを知ることはRubyプログラミングに限らずとても重要です。Rubyの返り値はとてもユニークです。この記事ではRubyのメソッドが何を返すか見ていきましょう。

この記事では下記のメソッドを使って説明します。



Ruby以外の他の昔からある言語では、メソッドが何らかの値を返す時に明示的にreturnを書く必要がありました。上記のプログラミングの例ではpの左にreturnを付けるようなイメージです。上記のソースコードをreturnを付けて実行してみると分かりますが、エラーにもならず普通に実行されます。しかし、Rubyでは実ははっきりとreturnを書く必要はありません。なぜなら、Rubyではメソッドのコードの最後のラインがreturnされるデータだと認識する仕組みがあるからです。このような仕組みがRubyにはあるので、returnを書くのはあまり推奨されていないのです。他にもいくつか理由が考えられます。

#私たちがプログラムを書く時に、どのような言語でも不必要なコードを使うことは避けたいと思っている。
#経験のあるRuby開発者を混乱させます。メソッドでreturnを使うべきときは、メソッドの途中でデータを返したい時です。

上記の「メソッドの途中でデータを返したい時」はどういうときか説明します。



このプログラムはxが5のときは["Lakers", "Warriors", "Cavaliers"]を返します。このプログラムの流れはif文に入り、そこでデータを返したいので(メソッドの最後(4行目)まで処理を進める必要がないので)、明示的にreturnを書いてデータを返しています(returnを書かないと処理が4行目まで進んでしまい["Lakers", "Warriors"]が返ります)。今度はxを10に変えて実行してみましょう。最後に書かれている["Lakers", "Warriors"]が返るはずです。

◯Rubyのインスタンスメソッドとクラスメソッドの違い - Rubyプログラミング(14)の記事はこちら
◯「Rubyプログラミング」シリーズの一覧はこちら



最近の投稿