跳到主要内容

invalid_field_type_in_struct

结构体类中的字段不能是类型“{0}”。它们只能声明为“int”、“double”、“Array”、“Pointer”或“Struct”或“Union”的子类型。

描述

#

Struct 的子类中的字段类型不是 intdoubleArrayPointerStructUnion 的子类型时,分析器会生成此诊断信息。

有关 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;
}