名前付きパラメーターが期待どおりに機能しないのはなぜだろうか。
def my_method(var1, var2 = 1, var3 = 10)
puts var1, var2, var3
end
my_method(999, var3 = 123)
出力
999
123
10
代わりに(少なくとも、そうあるべきだと思います):
999
1
123
では、名前付きパラメーターを使用するにはどうすればよいでしょうか?
PSハッシュを使用すると、まだ探しているものではありません:
def my_method(var1, vars = {var2: 1, var3: 10} )
puts var1, vars[:var2], vars[:var3]
end
my_method(999, var3: 123)
999
123
my_method(999, var2: 111, var3: 123)
999
111
123
my_method(999)
999
1
10
したがって、各値をvars
オーバーライドするか、まったくオーバーライドしない必要があります。もっと便利な方法はありますか?