2013-02-15 3 views
10

tôi đã kết thúc vô tình làm tương đương với này trong Ruby đêm khác:[....] trong Ruby là gì?

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

[...] là gì và những gì tôi có thể làm gì với nó?

+2

Tôi đoán đó chỉ là đánh dấu bản trình bày chứ không phải cú pháp hợp lệ. Liên quan đến các mảng đệ quy - Tôi chưa bao giờ sử dụng chúng. –

+1

hah, chưa từng thấy điều này trước đây :) –

+4

Đó là con người cho "omg rất nhiều đầu ra". Bạn không chắc chắn câu hỏi là gì, tuy nhiên, bạn đang đề cập đến "tham chiếu" nào? –

Trả lời

4

Nó chỉ là cách Array.inspect hiển thị các mảng đệ quy. Yếu tố cuối cùng của a là chính nó. Nếu một vị trí được hiển thị sau 5, kiểm tra sẽ kết thúc bằng một vòng lặp vô tận:

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

hoặc thử 'a.flatten' –

+0

;-) hoặc' a.join (',') ' –