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


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