私は、この奇妙な動作をダブルスプラットを使ってハッシュ変数を拡張しようとしました。なぜこれが起こっているのか分かりません。なぜこれが起こっているRubyでダブルスプラットで変数の空のハッシュを拡大する
マイルビーバージョン
ruby 2.2.6p396 (2016-11-15 revision 56800)
シナリオ
class MyClass
def my_method; end
end
MyClass.new.my_method(*[]) # returns nil
MyClass.new.my_method(**{}) # returns nil
MyClass.new.my_method(*[], **{}) # returns nil
# Using variables
values = []
k_values = {}
MyClass.new.my_method(*values) # returns nil
MyClass.new.my_method(**k_values) # *** ArgumentError Exception: Wrong number of arguments. Expected 0, got 1.
MyClass.new.my_method(*values, **k_values) # *** ArgumentError Exception: Wrong number of arguments. Expected 0, got 1.
# In summary
MyClass.new.my_method(**{}) # returns nil
MyClass.new.my_method(**k_values) # *** ArgumentError Exception: Wrong number of arguments. Expected 0, got 1.
は、いずれかが知っているのか?これはバグですか?
「my_method」コードですか? – MikDiet
Ops、忘れました!今更新中... – rafaels88