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


Dart Struct用法及代碼示例

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

所有 FFI 結構類型的超類型。

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

Struct 子類聲明中的字段聲明會自動獲得一個 setter 和 getter 實現,它訪問內存中的本機結構的字段。

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

typedef struct {
 int a;
 float b;
 void* c;
} my_struct;
class MyStruct extends Struct {
  @Int32()
  external int a;

  @Float()
  external double b;

  external Pointer<Void> c;
}

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

Struct 的子類的實例具有引用語義,並由本機內存或類型化數據支持。它們可以通過分配分配或從Pointer 加載或由 ffi 調用或回調創建。它們不能由生成構造函數創建。


繼承

Object NativeType Struct

相關用法


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