从字符串创建ruby Proc

时间:2010-03-17 00:33:48

标签: ruby lambda

我想将块定义为字符串,然后创建lambda。 以下示例不起作用。 这样的事情可能吗?

code_string = "|x|x*2"

l = lambda {eval(code_string)}

l.call(3) => 6

2 个答案:

答案 0 :(得分:9)

这有效

eval  "lambda { " + code_string + " }"

我只是不知道为什么会这样做而另一个没有。

答案 1 :(得分:2)

eval "lambda {#{code_string}}"