我正在使用ruby 1.9.3,我正在尝试按如下方式实现字符串插值:
例如:
params.txt
"#{str}"
test.rb
str = "my string"
content = File.open("params.txt", "r").read()
puts("#{content}") #result in "#{str}" and not "my string", it returns the content of the file as is
如何实现字符串插值?
更新 我想要实现的另一个例子:
str = "my string"
pat = '#{str}'
puts(pat) # returns nil
puts("#{pat}") # returns nil
eval(pat) # returns nil
eval("#{pat}") # returns nil
答案 0 :(得分:1)
如果您使用ERB,这将更容易。
params.txt
:
<%= str %>
test.rb
应该是这样的:
str = "my string"
ERB.new("params.txt").result(binding)
答案 1 :(得分:1)
str = "my string"
content = File.read("params.txt")
eval(content) # => "my string"
<小时/> 用于此目的的优选方式是:
params.txt
%{str}
test.rb
content = File.read("params.txt")
content % {str: "my string"}
# => "my string"