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

構造体内のフィールド初期化子

「Struct」または「Union」のサブクラスのコンストラクタには、フィールド初期化子を含めることはできません。

説明

#

アナライザは、`Struct` または `Union` のいずれかのサブクラスのコンストラクタに 1 つ以上のフィールド初期化子がある場合に、この診断を生成します。

FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。

#

以下のコードは、クラス `C` にフィールド `f` の初期化子を持つコンストラクタがあるため、この診断を生成します。

dart
// @dart = 2.9
import 'dart:ffi';

final class C extends Struct {
  @Int32()
  int f;

  C() : f = 0;
}

一般的な修正

#

フィールド初期化子を削除する

dart
// @dart = 2.9
import 'dart:ffi';

final class C extends Struct {
  @Int32()
  int f;

  C();
}