深入探索 Ruby 高级特性
1. eval 方法及其绑定
eval 方法的主要功能是执行传入的代码并返回结果。例如:
eval("puts 2 + 2")
这里 eval 执行了 puts 2 + 2 代码。还可以使用字符串插值构建表达式:
eval("puts #{15 * 2}")
在 Ruby 中, binding 是对执行上下文、作用域或状态的引用,它包含变量的当前值和执行环境的其他细节。可以将 binding 传递给 eval ,让 eval 在该绑定下执行代码,而不是当前上下文。示例如下:
def binding_elsewhere
x = 20
return binding
end
remote_binding = binding_elsewhere
x = 10
eval("puts x")
eval("puts x", remote_binding)
上述代码中, eval 接受一个可选的第二个参数 binding 。 remote_binding 引用
深入掌握 Ruby 高级特性
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



