2012-12-04 39 views
6

Tôi là một nhà phát triển Java và tôi đã được cung cấp mã Ruby để hiểu và sau đó làm việc.

Tôi đã đi qua các hướng dẫn Ruby trên tutorialspoint.com nhưng tôi không thể tìm ra những gì $_[0] là.

Nó đang được gán cho một biến trong mã, và nó chắc chắn không phải là một đối số dòng lệnh bởi vì tôi đã viết mã để kiểm tra điều đó và nó không thành công. Vì vậy, bất cứ ai có thể nói ý nghĩa của nó là gì?

+0

Trong khi của Ruby hỗ trợ nhiều "ma thuật" biến, việc sử dụng chúng là gây tranh cãi, và, như bạn thấy, một số của một vấn đề bảo trì, vì họ là tối nghĩa. Tôi khuyên bạn nên xem mô-đun tiếng Anh để biết thêm các tên có thể đọc được của các biến. –

Trả lời

13

Đó là một trong các biến số ma thuật.

$_ giữ giá trị của dòng cuối cùng được đọc từ đầu vào chuẩn. Do đó, $_[0] là biểu tượng đầu tiên của chuỗi đó.

Xem English.rb cho nhiều biến kỳ diệu

# The last line read by <tt>Kernel.gets</tt> or 
# <tt>Kernel.readline</tt>. Many string-related functions in the 
# +Kernel+ module operate on <tt>$_</tt> by default. The variable is 
# local to the current scope. Thread local. 
alias $LAST_READ_LINE   $_ 
+3

Mặc dù nó là một biến ma thuật nhưng nó không thực sự toàn cầu. '$' Là sai lầm. –

+0

Cảm ơn, đã sửa. –

+1

Yepp, hầu hết các "quả cầu ma thuật" thực sự là "những người địa phương kỳ diệu". –