2
我需要编写一个方法,它需要一个未知数量的参数(因此* splat),但它通过了yields_with_args
规范。有没有(*)splat参数在Ruby中传递多个参数的方法?
代码:
def eval_block(*args, &block)
raise "NO BLOCK GIVEN!" if block.nil?
block.call(args)
end
RSpec的:
it "passes the arguments into the block" do
expect do |block|
eval_block(1, 2, 3, &block)
end.to yield_with_args(1, 2, 3)
end
end
它的工作原理,但它产生的是*图示创建数组:[1,2,3]
VS 1,2,3
,因此没有通过RSpec的。是否有另一种方式通过Ruby中的方法传递多个参数?
挽救生命,布鲁 –