我对 Ruby 很陌生,所以我希望这个问题还没有在其他地方得到回答。但是我在这里和互联网上搜索了很长时间,但还没有结果。
我正在从文本文件中读取一堆文件路径。每个文件路径都有一些嵌入到字符串中的表达式(即 #{...} )。例如:
input = 'E:/files/storage/#{high_or_low}/#{left_or_right}/*.dll'
无论如何,我想评估这些字符串,就好像它们是 ruby 代码一样,并替换这些表达式。例如:
def high_or_low
'low'
end
def left_or_right
'left'
end
# It represents a file path on the disk drive
input = 'E:/files/storage/#{high_or_low}/#{left_or_right}/*.dll'
puts input
# Now how do I execute this 'input' string so that it behaves as if it was defined with quotes?
result = eval input
puts result
我故意在原始输入字符串周围加上单引号,以表明当字符串从磁盘中取出时,嵌入在字符串中的表达式是不求值的。那么如何使用这些表达式评估字符串呢?如上所示使用 eval 似乎不起作用。我收到此错误:
test_eval.rb:15: compile error (SyntaxError)
test_eval.rb:15: syntax error, unexpected tIDENTIFIER, expecting $end
谢谢