可变数量的参数

splat 运算符删除数组的各个元素并将它们放入列表中。这通常用于创建接受可变数量参数的方法:

# First parameter is the subject and the following parameters are their spouses
def print_spouses(person, *spouses)
  spouses.each do |spouse|
    puts "#{person} married #{spouse}."
  end
end

print_spouses('Elizabeth', 'Conrad', 'Michael', 'Mike', 'Eddie', 'Richard', 'John', 'Larry')

请注意,数组只计为列表中的一个项目,因此如果你有要传递的数组,则需要在调用端使用 splat 运算符:

bonaparte = ['Napoleon','Joséphine','Marie Louise']
print_spouses(*bonaparte)