2010-07-02 61 views
0

我讀了一些Ruby代碼,我不明白這個片段:

thing = '${other-thing}/etc/' 

這似乎是一個替代值的${other-thing}並用它來建立字符串的事情,但我一直沒能自己重新創建。

編輯:對不起,事實證明Maven(一個Java構建工具)正在進行一些預處理。接受的答案顯示瞭如何在直接Ruby中進行替換。

+1

你在哪裏看到這段代碼? – 2010-07-02 13:06:40

回答

3
$ irb 
irb(main):001:0> a = "Hello" 
=> "Hello" 
irb(main):002:0> b = "world" 
=> "world" 
irb(main):003:0> puts "${a}, ${b}!" # Doesn't work. 
${a}, ${b}! 
=> nil 
irb(main):004:0> puts "#{a}, #{b}!" # Works fine. 
Hello, world! 
=> nil 
irb(main):005:0> puts '#{a}, #{b}!' # Doesn't work. 
#{a}, #{b}! 
=> nil 

你想#{...},不${...}我相信。另外,您不會在單引號字符串內部獲得替換,只能使用雙引號(或者在Ruby中使用幾十種字符串分隔方式)。

+0

絕對是$ {...}。有可能有人在代碼的某處添加了行爲? – Wiirt 2010-07-02 12:52:06

+0

第二個想法,我認爲必須進行一些預處理... – Wiirt 2010-07-02 12:53:32

+0

可能是愚蠢的,但不是它的某種環境變量? – 2010-07-02 12:57:05

相關問題