如何在ruby中评估多行代码?

时间:2010-11-03 04:17:39

标签: ruby

eval('puts "ff"\nputs "ff"')

我试图在一个eval中使用两个表达式,但它不执行?

我该怎么做?我想知道,因为我想动态执行部分代码。

4 个答案:

答案 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"')