当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R reg.finalizer 对象的最终确定


R语言 reg.finalizer 位于 base 包(package)。

说明

注册一个R在对象的垃圾收集时或(可选)在一个对象的末尾调用的函数R会议。

用法

  reg.finalizer(e, f, onexit = FALSE)

参数

e

对象有待最终确定。必须是环境或外部指针。

f

完成时调用的函数。必须接受一个参数,该参数将是要最终确定的对象。

onexit

逻辑:如果对象在结束时仍未被收集,是否应该运行终结器R会议?

细节

此函数的主要目的是允许引用外部项(例如临时文件)的对象在不再从内部引用时执行清理操作R。这只对那些在赋值时从不复制的对象才有意义,因此对环境和外部指针有限制。

除其他外,它提供了一种在程序结束时运行代码的方法R不进行操作的会话.Last。对于在包中使用,通常最好在命名空间中的对象上设置终结器:然后它将在会话结束时调用,或者如果在会话期间完成,则在命名空间卸载后不久调用。

NULL

注意

R的解释器不可重入,并且终结器可以在计算过程中运行。因此,有许多函数调用可能不安全f:造成麻烦的一个例子是options。终结器在垃圾回收时安排,但仅在此后相对安全的时间运行。

例子

f <- function(e) print("cleaning....")
g <- function(x){ e <- environment(); reg.finalizer(e, f) }
g()
invisible(gc()) # trigger cleanup

也可以看看

gcMemory 用于垃圾收集和内存管理。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Finalization of Objects。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。