gpt4 book ai didi

ruby - ruby 中的 TOPLEVEL_BINDING 是什么?

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:41 37 4
gpt4 key购买 nike

它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的 binding 有何不同?

> ruby -e 'puts TOPLEVEL_BINDING === binding'
false

最佳答案

事实是,TOPLEVEL_BINDING 始终引用 Binding 的预定义全局实例,而 Kernel#binding 创建 的新实例>Binding 每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用 ===== 测试它们的绑定(bind)相等性。

puts TOPLEVEL_BINDING
puts TOPLEVEL_BINDING
puts binding
puts binding
puts binding == binding

# =>
#<Binding:0x9769ea0>
#<Binding:0x9769ea0>
#<Binding:0x9941ea8>
#<Binding:0x9941e58>
false

关于ruby - ruby 中的 TOPLEVEL_BINDING 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17170027/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com