Что такое помеченные переменные в Ruby? - PullRequest
1 голос
/ 19 ноября 2011

Что такое помеченные переменные, такие как *arr?

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

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

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

1 Ответ

6 голосов
/ 19 ноября 2011

Это называется оператором splat , и он может собирать элементы в массив (примененный к несвязанной переменной) или разбивать массив на отдельные элементы (применяемый к массиву).

def bar(*a)
  a[1]
end

bar(1,2,3)
=> 2

def foo(a,b,c)
  b
end

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

Это немного упрощенно, прочитайте связанный пост для более подробной информации.

...