當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。