eval('puts "ff"\nputs "ff"')
我试图在一个eval中使用两个表达式,但它不执行?
我该怎么做?我想知道,因为我想动态执行部分代码。
答案 0 :(得分:5)
eval("puts 'ff'\nputs 'ff'")
也有效。 '\n'
被视为斜线和n,因为单引号对双引号的作用不同。
答案 1 :(得分:5)
使用heredoc语法。传递文件和行号以在后面的跟踪中提供参考信息。
eval(<<-CODE, __FILE__, __LINE__ +1 )
some(:ruby);
code
# and comments
CODE
答案 2 :(得分:3)
我用这个:
eval %{
puts 'ff'
puts 'hello'
}
答案 3 :(得分:2)
执行:
eval('puts "ff";puts "ff"')