missing_field_type_in_struct
struct 类中的字段必须具有显式声明的类型,类型为 'int'、'double' 或 'Pointer'。
描述
#当 `Struct` 或 `Union` 子类中的字段没有类型注解时,分析器会生成此诊断信息。每个字段都必须有一个显式类型,且该类型必须是 `int`、`double`、`Pointer`,或者 `Struct` 或 `Union` 的子类。
有关 FFI 的更多信息,请参阅 使用 dart:ffi 进行 C 语言互操作。
示例
#以下代码会生成此诊断信息,因为字段 `str` 没有类型注解
dart
import 'dart:ffi';
final class C extends Struct {
external var str;
@Int32()
external int i;
}
常见修复方法
#显式指定字段的类型
dart
import 'dart:ffi';
import 'package:ffi/ffi.dart';
final class C extends Struct {
external Pointer<Utf8> str;
@Int32()
external int i;
}