2010-07-02 36 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

相关问题