2013-02-15 7 views
10

Yanlışlıkla geçen gece Ruby bu eşdeğer yapmak sona erdi :Ruby'de [....] nedir?

[...] nedir
a = *1..5 # => [1, 2, 3, 4, 5] 
a << a 
a   # => [1, 2, 3, 4, 5, [...]] 
a.last  # => [1, 2, 3, 4, 5, [...]] 

ve bununla ne yapabilirim?

+2

Bence sadece bir sunum biçimlendirme, geçerli değil sözdizimi sanırım. Yinelemeli dizilerle ilgili - Ben onları hiç kullanmadım. –

+1

hah, bunu daha önce görmedim :) –

+4

Bu "omg çok fazla çıktı" için insan. Sorunun ne olduğundan emin değilsiniz, ama ne "referans" dan bahsediyorsunuz? –

cevap

4

Array.inspect, özyinelemeli dizileri görüntüler. A'nın son unsuru bir kendisidir. Bir yerde 5 sonra görüntülenen ise sonsuz bir döngü içinde sona ereceğini incelemek:

[1, 2, 3, 4, 5, [1, 2, 3, 4, 5, [1, 2, 3, 4, 5, [1, 2, 3, 4, 5, [...]]]]] 
+1

veya "a.flatten" –

+0

;-) veya 'a.join (',')' yi deneyin. –