跳到主要內容

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