我得到了這種奇怪的行爲,試圖使用雙摔跤擴大哈希變量。不知道爲什麼會發生這種情況。在紅寶石中使用雙摔跤擴展變量中的空哈希
我的紅寶石版本
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
行動中,我忘了!正在更新... – rafaels88