記載されている内容は2019年04月10日時点のものです。現在の情報と異なる可能性がありますので、ご了承ください。記事に記載されている情報は自己責任でご活用いただき、本記事の内容に関する事項については、専門家等に相談するようにしてください。return文の基本的な使い方やRubyではreturnは省略できるということを解説しています。returnを省略してはいけない場合や省略せずに書くとよりよいコードになる場合を解説しています。おまけですが、式と文との違いも簡単に解説しています。P...returnはRubyにおいてメソッドの処理を中断し値を返す文です。メソッドの中でreturnを書くと、以降の処理は行われず、returnに渡した値がメソッドの返り値となります。本記事では、returnの基本的な使い方や、実はreturnは省略できるという事実、省略して書かない方がいいのはどういう場合なのか、などを解説します。Rubyでのreturnの基本的な書き方returnの基本的な使い方と省略する書き方を見ていきます。基本的には省略しても問題ありませんが、後ほど省略してはいけない場合や省略しない方がいい場合を紹介するので、基本的な使い方は覚えておきましょう。Rubyでreturnを明示的に設定する方法return文の基本的な書き方を見ていきましょう。基本的にreturnはメソッドの中で用います。次のコードは渡された数値に2を足して返すメソッドです。resultend簡単な例ですが、実行してみましょう。2return(result)endとかっこを付けて値を渡すこともできますが、あまり一般的ではないので基本的にはスペースを空けて値を渡します。Rubyではreturnを省略できる実はRubyではメソッドの最後に評価された値がメソッドの返り値となるので、returnは省略して書くことも可能です。先ほどのadd2メソッドは次のように書いても同じです。2end「評価された値」とは簡単に言えば「実行された結果の値」を意味します。変数が評価されたら変数の中身が返り、メソッドや計算が評価されると、そのメソッドの返り値や計算結果が評価された値となります。returnは文である先ほど、returnは「値を返す文」だと書きました。Rubyの命令は大きく分けて「値を返す式」と「値を返さない式」があります。値を返さない式を特に「文」と呼び、whileやreturnなどが文に属しています。今の段階でreturnが文かどうかはそれほど重要ではありませんが、Rubyをさらに深く理解し、より便利に使っていくためには知っておくといいでしょう。ちなみに、Ruby以外の言語ではifは「if文」と呼ばれるように、値を返さない式に属しているのですが、Rubyではifは式なので、値を返します。result3コード量を減らす際にこのテクニックはよく使います。returnを使用した方がよい場合Rubyではほとんどの場面でreturnを明示的に書かなくても済みます。一方で明示的にreturnを書かないといけない場合や、書いた方がいい場合もあるので紹介します。コーディング規約に省略しないと書いてあるプロジェクトによっては、コーディング規約が用意されてあったり、既存のコーディング規約に沿ってコーディングして下さいと、お願いされる場合があります。プロジェクトのコーディング規約に、returnは省略しないと書いてあれば、個人の好き嫌い関係なく、returnは明示的に書かなくてはなりません。プロジェクトにRubyをメインで扱っていないメンバがいる場合や、開発メンバが多くコードの品質を一定に保ちたい場合などに、returnを明示的に書くコーディング規約が採用されることが多いです。先ほども書きましたが、ifは式なのでreturnを書かずに、中身がif式だけのメソッドを作ることができます。100elsenumendendこれぐらいのif式であれば、後述のif式を使った方がコード量を少なく、かつ見やすくなります。100の場合でも、メソッドの返り値は引数に渡した数がそのまま返ってきます。add100(110)110これは、メソッドの最後に評価された値がnumだからです。numが100より小さい場合に100を足して返すには、returnで明示的に値を返す必要があります。add100(110)>110このように、後述のif式を使う場合は、セットでreturnを使うと覚えておきましょう。以降の処理を実行しなくてもいい場合3つ目は、ループ処理の中でよく使われるreturnです。次のコードを見てください。numendresultend一見よくある感じのコードですが、検索対象がリストのどこにあっても、リストをすべて走査してしまい、非効率です。そこで、明示的にreturnを書き、見つけ次第ループから抜け出すように修正しましょう。numendnilend最後にnilを書かないと、見つからなかった場合itemsが返り値となってしまいます。以降の処理を実行する必要が無い場合は、早めにreturnで値を返すようにしましょう。複数の値を返したい場合4つ目はreturnを使って、複数の値を返す方法を紹介します。利用する場面は多くないですが、一つのメソッドから、複数の値を返すことができると便利な場合があります。returnを使わない場合では、一旦配列にしてから返すという方法があります。b1これをreturnを使って書きます。b)配列にせずに、カンマ区切りでreturnに渡すことで、複数の値を返すことができます。returnを使った場合でも、swapメソッドは配列を返すようになるので、結果的には使わない場合と同じになるのですが、より直観的に書くことができます。使いどころをおさえて効率の良いコーディングをコーディング規約で規定されている場合を除いて必ずしもreturnを書く必要はありません。使いどころをおさえて適切に使うことで読みやすく、効率的なコードを書けるようになります。file.2:営業マンとして活躍し、海外留学。file.4:独学よりもスクールで。他人と同じことはしない。