跳到主內容

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