Ruby核心模块与类的深入解析
1. ObjectSpace模块
ObjectSpace模块提供了一系列与垃圾回收机制交互的方法,还能让我们遍历所有存活对象,并支持对象终结器。
1.1 基本功能与终结器
ObjectSpace模块允许我们与垃圾回收设施交互,还可以使用迭代器遍历所有存活对象。同时,它支持对象终结器,即当特定对象即将被垃圾回收销毁时会调用的过程。
include ObjectSpace
a, b, c = "A", "B", "C"
puts "a's id is #{a.object_id}"
puts "b's id is #{b.object_id}"
puts "c's id is #{c.object_id}"
define_finalizer(a, lambda {|id| puts "Finalizer one on #{id}" })
define_finalizer(b, lambda {|id| puts "Finalizer two on #{id}" })
define_finalizer(c, lambda {|id| puts "Finalizer three on #{id}" })
上述代码为对象 a 、 b 、 c 定义了终结器,当这些对象被垃圾回收时,相应的终结器会被调用。
1.2 模块方法
- _id2ref :将对象ID转换为对象
超级会员免费看
订阅专栏 解锁全文
382

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



