クラス/メソッドの定義 – Rubyリファレンスマニュアル

仮引数にデフォルト式が与えられた場合、メソッド呼び出しで実引数を省略したときのデフォルト値になります。ただし実引数との対応を取るため、i番目の引数にデフォルト値を指定したならば、 i+1番目以降でも全てデフォルト値を指定するか、可変長引数を利用しなければなりません

知らなかった。

>> def foo(arg1 = 1, arg2); end
SyntaxError: compile error
(irb):6: syntax error, unexpected ')', expecting '='
def foo(arg1 = 1, arg2); end
                       ^
        from (irb):6

これは駄目。

>> def foo(arg1 = 1, arg2 = 1); end
=> nil

これはOK。

仕事で2年以上使っててこのありさまだよ!

Comments


Option