在提出实际问题(见最后)之前,请让我通过示例展示导致该问题的步骤:
\ntests$ mkdir esm && cd esm\ntests/esm$ nvm -v\n0.37.2\ntests/esm$ nvm use v15\nNow using node v15.6.0 (npm v7.5.6)\ntests/esm$ node -v\nv15.6.0\ntests/esm$ npm -v\n7.5.6\ntests/esm$ npm init\npackage name: (esm) test-esm\nentry point: (index.js)\nRun Code Online (Sandbox Code Playgroud)\n安装nodehun
\ntests/esm$ npm install nodehun\nadded 2 packages, and audited 3 packages in 11s\ntests/esm$ npm ls\ntest-esm@1.0.0 tests/esm\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 nodehun@3.0.2\nRun Code Online (Sandbox Code Playgroud)\nindex.js
tests$ mkdir esm && cd esm\ntests/esm$ nvm -v\n0.37.2\ntests/esm$ nvm use v15\nNow using node v15.6.0 (npm v7.5.6)\ntests/esm$ node -v\nv15.6.0\ntests/esm$ npm -v\n7.5.6\ntests/esm$ npm …Run Code Online (Sandbox Code Playgroud) keyword arguments只是想了解如何在 Ruby 中收集参数,我想出了以下代码片段,在某些情况下似乎无法收集**kargs:
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}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么它kargs在第一次调用中不收集foo,而在第二次调用中收集。