我正在用 Ruby 编写类似 REPL 的东西,我需要在运行时定义变量。我发现我应该使用 eval,但这里是 irb session 的摘录来测试它。在 1.9.3 中(这将在 1.8 中工作)
> eval 'a = 3'
=> 3
> a
=> NameError: undefined local variable or method `a' for main:Object
他们在 1.9 中将其更改为:
> eval 'a = 3'
=> 3
> eval 'a'
=> 3
所以似乎从 1.9 开始就改变了。如何使用 eval (或类似的东西)在 1.9.3 中定义变量?