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