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


Dart Union用法及代碼示例


dart:ffi 庫中Union 類的用法介紹如下。

所有 FFI 聯合類型的超類型。

FFI 聯合類型應擴展此類並聲明與底層本機聯合對應的字段。

Union 子類聲明中的字段聲明會自動獲得一個 setter 和 getter 實現,該實現可訪問內存中的本機聯合字段。

Union 子類聲明中的所有字段聲明必須具有類型 intdouble 並使用表示本機類型的 NativeType 進行注釋,或者必須是類型 Pointer 。例如:

typedef union {
 int a;
 float b;
 void* c;
} my_union;
class MyUnion extends Union {
  @Int32()
  external int a;

  @Float()
  external double b;

  external Pointer<Void> c;
}

Union 子類聲明中的所有字段聲明都必須標記為 external 。您不能創建該類的實例,隻能讓它指向現有的本機內存,因此沒有用於存儲非本機字段的內存。外部字段也不能被構造函數初始化,因為沒有創建 Dart 對象。

Union 的子類的實例具有引用語義並由本機內存支持。可以通過分配分配或從 Pointer 加載,但不能由生成構造函數創建。


繼承

Object NativeType Union

相關用法


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