2014-11-21 13 views

cevap

11

Bu dizinin ilk elemanı atar Ruby'nin multiple assignment:

a, = [1, 2, 3] 
a #=> 1 

Veya:

a, b = [1, 2, 3] 
a #=> 1 
b #=> 2 

Bir * kullanabilirsiniz kalan öğeleri getirmek için:

a, *b = [1, 2, 3] 
a #=> 1 
b #=> [2, 3] 

Veya:

*a, b = [1, 2, 3] 
a #=> [1, 2] 
b #=> 3 
+0

atılmıştır. Diğer seçenekler 1+ ile açıklanmıştır. –

6

Bu gibi çalışır. lhs tek öğeye sahipse ve rhs birden çok değere sahipse lhs buna benzer bir değerler dizisi atar. lhsrhs daha elemanları varsa

a = 1,2,3 #=> a = [1,2,3] 

, daha sonra lhs aşırı elemanlar nedenle

a, = 1,2,3 #=> a = 1

a,b,c = 1,2 #=> a = 1, b = 2, c = nil 

atılır ise. Diğerleri [2,3]