星号块参数列表
问题描述:
在Ruby中,我有类似以下星号块参数列表
foo { |x, y| puts y }
代码,因为编译器/解释器不断警告我网站未使用VAR X,我换成X用“*”和编译器停止抱怨。 (我不知道为什么我决定*是最好的选择......只是发生了......)
foo { |*, y| puts y }
这是干什么的?有没有副作用?
答
在此上下文中的星号称为“splat”运算符。这意味着您可以在它的位置传递多个参数,并且该块会将它们看作一个数组。
虽然(例如foo { |*x, y| puts y }
),但我不确定它如何或为什么在它后面没有变量名称的情况下工作。我猜想这意味着该块将忽略除最后一个参数外的所有参数,并将其打印出来。