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


Dart Finalizer.attach用法及代碼示例


dart:core 庫中Finalizer.attach 方法的用法介紹如下。

用法:

void attach(
   Object value,    
   T finalizationToken,    
   {Object? detach}   
)

將此終結器附加到 value

value 不再可供程序訪問時,同時仍具有此終結器的附件,此終結器may 的回調將使用finalizationToken 作為參數調用。每個活動附件最多可以調用一次回調,未通過調用 Finalizer.detach 分離的附件。

如果提供了非 null detach 值,則可以將該對象傳遞給 Finalizer.detach 以再次刪除附件。

valuedetach 參數不計入程序可以訪問的那些對象。兩者都必須是作為Expando 鍵支持的對象。它們可能是same 對象。

例子:

/// Access the data base.
Database connect() {
  // Wraps the connection in a nice user API,
  // *and* closes connection if the user forgets to.
  var connection = _connectToDatabase();
  var wrapper = Database._fromConnection(connection, _finalizer);
  // Get finalizer callback when `wrapper` is no longer reachable.
  _finalizer.attach(wrapper, connection, detach: wrapper);
  return wrapper;
}

可以使用相同的終結令牌附加多個對象,並且終結器可以使用不同或相同的終結令牌多次附加到同一對象。

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 attach method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。