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
也可以看看
相关用法
- R regmatches 提取或替换匹配的子字符串
- R readRenviron 从文件设置环境变量
- R remove 从指定环境中删除对象
- R readChar 与连接之间传输字符串
- R rep 复制向量和列表的元素
- R readRDS 单个对象的序列化接口
- R rev 反转元素
- R readline 从终端读取一行
- R readBin 与连接之间传输二进制数据
- R replace 替换向量中的值
- R readLines 从连接读取文本行
- R rank 样本排名
- R rapply 递归地将函数应用于列表
- R raw 原始向量
- R rawConnection 原始连接
- R row 行索引
- R row.names 获取和设置 DataFrame 的行名称
- R rowsum 根据分组变量给出矩阵或 DataFrame 的列和
- R range 值范围
- R rle 游程长度编码
- R round.POSIXt 舍入/截断日期时间对象
- R rawConversion 与(位/打包)原始向量之间的转换
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Finalization of Objects。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。