2011-11-12 72 views
0

在Ruby字符串:

"${0} ${1} ${2:hello}" 

${i}在調用此特定文件的命令第i個說法。

嘗試在網上搜索「Ruby $ {0}」,但搜索引擎不喜歡非字母數字字符。

諮詢了一本Ruby書,其中說#{...}將替換大括號中的代碼結果,但是這並沒有提及$ {...},這是一種將argvalues替換爲字符串的特殊語法,非常感謝,

喬爾

+0

我不確定你到底在問什麼,但這似乎並不是ruby字符串的行爲。 –

+0

$ 0是腳本文件,但參數在ARGV中。 $ n其中n> 1是特殊匹配變量。看起來更像bash什麼的。 –

回答

4

正如上面提到${0}會做什麼特別的,$0給出腳本的名稱,$1給出了一個正則表達式的第一場比賽。

爲了內插一個命令行參數,你通常會做這樣的:

puts "first argument = #{ARGV[0]}" 

然而,ARGV也別名爲$*,所以你也可以這樣寫

puts "first argument = #{$*[0]}" 

也許這混亂出現在那裏?