メインコンテンツにスキップ

struct内の不正なフィールド

structクラスのフィールドは「{0}」という型にすることはできません。宣言できるのは、「int」、「double」、「Array」、「Pointer」、または「Struct」や「Union」のサブタイプのみです。

説明

#

Structのサブクラス内のフィールドの型が、intdoubleArrayPointer、またはStructUnionのサブタイプ以外の型である場合に、アナライザーはこの診断を生成します。

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