dart:ffi
库中Struct
类的用法介绍如下。
所有 FFI 结构类型的超类型。
FFI 结构类型应扩展此类并声明与底层本机结构相对应的字段。
Struct 子类声明中的字段声明会自动获得一个 setter 和 getter 实现,它访问内存中的本机结构的字段。
Struct 子类声明中的所有字段声明必须具有类型 int 或 double 并使用表示本机类型的 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 StreamTransformer构造函数用法及代码示例
- Dart String.replaceAll用法及代码示例
- Dart Stream.fromFutures用法及代码示例
- Dart StreamController用法及代码示例
- Dart StringList.first用法及代码示例
- Dart Stream.fold用法及代码示例
- Dart Stream.map用法及代码示例
- Dart String.fromCharCodes用法及代码示例
- Dart StreamSubscription用法及代码示例
- Dart String.trim用法及代码示例
- Dart String.lastIndexOf用法及代码示例
- Dart String.replaceRange用法及代码示例
- Dart StringList.length用法及代码示例
- Dart Stream.asBroadcastStream用法及代码示例
- Dart Stream.handleError用法及代码示例
- Dart String.toLowerCase用法及代码示例
- Dart Stream.where用法及代码示例
- Dart String.substring用法及代码示例
- Dart Stream.reduce用法及代码示例
- Dart String.length用法及代码示例
- Dart Stream.join用法及代码示例
- Dart Stream.error用法及代码示例
- Dart Stream.periodic用法及代码示例
- Dart Stream.take用法及代码示例
- Dart String.padRight用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Struct class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。