Ruby中的星号变量是什么?

Say*_*yuj 1 ruby arrays splat

什么是星号变量*arr

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

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

*arr = %w{i am happy}
=> [["i", "am", "happy"]]
Run Code Online (Sandbox Code Playgroud)

klo*_*ner 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
Run Code Online (Sandbox Code Playgroud)

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