用法:
finalizer(f, x)
注冊一個函數 f(x)
以在沒有 program-accessible 引用 x
時調用,並返回 x
。 x
的類型必須是 mutable struct
,否則此函數的行為是不可預測的。
f
不得導致任務切換,這不包括大多數 I/O 操作,例如 println
。使用 @async
宏(將上下文切換延遲到終結器之外)或 ccall
直接調用 C 中的 IO 函數可能有助於調試目的。
例子
finalizer(my_mutable_struct) do x
@async println("Finalizing $x.")
end
finalizer(my_mutable_struct) do x
ccall(:jl_safe_printf, Cvoid, (Cstring, Cstring), "Finalizing %s.", repr(x))
end
終結器可以在對象構造時注冊。在下麵的示例中,請注意我們隱式依賴終結器返回新創建的可變結構 x
。
示例
mutable struct MyMutableStruct
bar
function MyMutableStruct(bar)
x = new(bar)
f(t) = @async println("Finalizing $t.")
finalizer(f, x)
end
end
相關用法
- Julia findfirst方法用法及代碼示例
- Julia findall方法用法及代碼示例
- Julia findmax()用法及代碼示例
- Julia findlast方法用法及代碼示例
- Julia findnext方法用法及代碼示例
- Julia findprev方法用法及代碼示例
- Julia findmin()用法及代碼示例
- Julia findfirst()用法及代碼示例
- Julia findmax用法及代碼示例
- Julia findprev()用法及代碼示例
- Julia findlast()用法及代碼示例
- Julia findmin用法及代碼示例
- Julia findnext()用法及代碼示例
- Julia fill!用法及代碼示例
- Julia first方法用法及代碼示例
- Julia firstindex用法及代碼示例
- Julia fieldnames用法及代碼示例
- Julia filter!用法及代碼示例
- Julia fill用法及代碼示例
- Julia fieldname用法及代碼示例
- Julia fieldtypes用法及代碼示例
- Julia first用法及代碼示例
- Julia filter用法及代碼示例
- Julia first()用法及代碼示例
- Julia float方法用法及代碼示例
注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Base.finalizer — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。