当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。