从 Ruby 2.4 开始,splat 运算符在 Ruby 核心文档中的记录很少。不过,它是该语言的核心功能,并且 splat 运算符的源代码可以在vm_eval.c下找到rb_yield_splat(VALUE values)。
单元测试可以更rb_yield_splat清楚地表明发生了什么:
it "yields with passed array's contents" do
ret = nil
@s.rb_yield_splat([1, 2]) { |x, y| ret = x + y }
ret.should == 3
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |