Ruby中的星号变量是什么?

时间:2011-11-18 20:23:02

标签: ruby arrays splat

什么是星号变量,例如*arr

*arr = "sayuj"
=> ["sayuj"]

*arr = *%w{i am happy}
=> ["i", "am", "happy"]

*arr = %w{i am happy}
=> [["i", "am", "happy"]]

1 个答案:

答案 0 :(得分:6)

它被称为splat运算符,它可以将元素收集到数组中(应用于未绑定的变量)或将数组拆分为单个元素(应用于数组)。

def bar(*a)
  a[1]
end

bar(1,2,3)
=> 2

def foo(a,b,c)
  b
end

foo(*[1,2,3])
=> 2

这有点过于简单,请阅读链接帖子以获取更深入的信息。