invalid_field_type_in_struct
结构体类中的字段不能是类型“{0}”。它们只能声明为“int”、“double”、“Array”、“Pointer”或“Struct”或“Union”的子类型。
描述
#当 Struct
的子类中的字段类型不是 int
、double
、Array
、Pointer
或 Struct
或 Union
的子类型时,分析器会生成此诊断信息。
有关 FFI 的更多信息,请参阅 使用 dart:ffi 的 C 互操作。
示例
#以下代码会产生此诊断信息,因为字段 str
的类型为 String
,这不是 Struct
子类字段的允许类型之一
dart
import 'dart:ffi';
final class C extends Struct {
external String s;
@Int32()
external int i;
}
常见修复方法
#使用该字段允许的类型之一
dart
import 'dart:ffi';
import 'package:ffi/ffi.dart';
final class C extends Struct {
external Pointer<Utf8> s;
@Int32()
external int i;
}