【发布时间】:2018-08-06 00:47:59
【问题描述】:
只是想了解如何在 Ruby 中收集参数,我想出了以下 sn-p,在某些情况下似乎无法在 **kargs 中收集 keyword arguments:
def foo(i, j= 9, *args, k: 11, **kargs)
puts "args: #{args}; kargs: #{kargs}"
end
foo(a: 7, b: 8)
# output: args: []; kargs: {}
foo(9, a: 7, b: 8)
# output: args: []; kargs: {:a=>7, :b=>8}
foo(9, 10, 13, a: 7, b: 8)
# output: args: [13]; kargs: {:a=>7, :b=>8}
我想知道为什么它在第一次调用foo 时没有收集到kargs,而在第二次调用时却收集到了。
【问题讨论】:
标签: ruby keyword-argument