1

スター付き変数はどのようなもの*arrですか?

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

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

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

1 に答える 1

6

これはスプラット演算子と呼ばれ、要素を配列に収集する(バインドされていない変数に適用される)か、配列を個々の要素に分割する(配列に適用される)ことができます。

def bar(*a)
  a[1]
end

bar(1,2,3)
=> 2

def foo(a,b,c)
  b
end

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

これは少し単純化されすぎています。詳細については、リンクされた投稿をお読みください。

于 2011-11-18T20:29:16.910 に答える