为什么这个评估在Ruby中不起作用
你能解释一下吗 我想评估两个不同来源的数值和计算结果。一个源向我提供以下信息(以编程方式): 第二个来源为我提供了要计算的表达式:为什么这个评估在Ruby中不起作用,ruby,Ruby,你能解释一下吗 我想评估两个不同来源的数值和计算结果。一个源向我提供以下信息(以编程方式): 第二个来源为我提供了要计算的表达式: 'a + 3' 这项工作: a = 2 eval 'a + 3' 这也适用于: eval 'a = 2; a + 3' 但我真正需要的是这个,它不起作用: eval 'a = 2' eval 'a + 3' 我想了解其中的区别,以及如何让最后一个选项起作用 感谢您的帮助。您可以创建一个,并将相同的绑定与每个调用相关联: 正是我需要的。谢谢 eval 'a =
'a + 3'
这项工作:
a = 2
eval 'a + 3'
这也适用于:
eval 'a = 2; a + 3'
但我真正需要的是这个,它不起作用:
eval 'a = 2'
eval 'a + 3'
我想了解其中的区别,以及如何让最后一个选项起作用
感谢您的帮助。您可以创建一个,并将相同的绑定与每个调用相关联:
正是我需要的。谢谢
eval 'a = 2'
eval 'a + 3'
1.9.3p194 :008 > b = binding
=> #<Binding:0x00000100a60c60>
1.9.3p194 :009 > eval 'a = 2', b
=> 2
1.9.3p194 :010 > eval 'a + 3', b
=> 5
1.9.3p194 :011 > b = binding
=> #<Binding:0x00000100b46aa8>
1.9.3p194 :012 > b.eval 'a = 2'
=> 2
1.9.3p194 :013 > b.eval 'a + 3'
=> 5