2012-12-04 49 views
6

我是一名Java開發人員,我已經被授予了Ruby代碼來理解和以後的工作。

我經歷了tutorialspoint.com上的Ruby教程,但我無法弄清楚$_[0]是什麼。

它被分配給代碼中的一個變量,它絕對不是命令行參數,因爲我編寫了代碼來測試它,並且它失敗了。那麼,誰能說出它的意義呢?

+0

儘管Ruby支持很多「神奇」的變量,它們的用途是有爭議的,而且,當你看到有些的維護問題,因爲他們是模糊的。我建議查看英文模塊以獲取更多可讀的變量名稱。 –

回答

13

這是一個神奇的變數。

$_保存從標準輸入讀取的最後一行的值。因此,$_[0]是該字符串的第一個符號。

更多的魔術變量

# 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

儘管這是一個魔術變量,但它並不是全球性的。 '$'是誤導性的。 –

+0

謝謝,糾正。 –

+1

葉普,大部分的「魔術變種」其實都是「魔術線索 - 當地人」。 –