前提・実現したいこと
Ruby初学者です。
書籍「たのしいRuby第6版」を読み進めています。
引数が大きい方を戻り値として返すmaxメソッドを記述しました。
異なる記述方法としてreturnを使用する記述方法も書いてあったので同じファイル内に2つのメソッドを記述しました。
そこでふと、swiftだと同じメソッドだとエラーが出たよなと思い、max()とmax2()で記述しました。
その時はエラーも出ないで出力できましたが、同一の名前で2つともmax()で記述してみてエラーが出るかを試したところ、エラーが出ずに出力されました。
調べたところ、
https://teratail.com/questions/2062
上記の質問で「エラーにならないのは、ruby の言語仕様です。 」
とあります。そこまではわかりました。
この場合、どちらのメソッドが実行されて出力されたのでしょうか?
後から記述したメソッドを最新と判断しているのでしょうか?
よろしくお願い致します。
該当のソースコード
def max(a, b) if a > b a else b end end def max(a, b) if a > b return a end return b end p max(10, 5) p max(20, 5)
補足情報(FW/ツールのバージョンなど)
Ruby Ver 2.6.3p62
Visual Studio Code Ver 1.46.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/10 11:23