跳到主内容

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