field_initializer_in_struct 진단: Struct·Union 하위 클래스의 생성자에는 필드 초기화를 못 써요

field_initializer_in_struct 진단: Struct·Union 하위 클래스의 생성자에는 필드 초기화를 못 써요

Dart 분석기가 내보내는 진단에는 이름이 있어요. field_initializer_in_structStructUnion의 하위 클래스에 있는 생성자가 필드 초기화를 가질 때 분석기가 알려주는 진단이에요.

출처: field_initializer_in_struct

본문

설명

StructUnion의 하위 클래스에 있는 생성자가 필드 초기화를 하나라도 가지면 이 진단이 나와요. FFI에 대한 자세한 내용은 dart:ffi를 사용한 C 상호운용 문서를 참고해요.

예시

다음 코드는 클래스 C가 필드 f를 초기화하는 생성자를 가지기 때문에 이 진단이 나와요.

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

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

  C() : f = 0;
}

흔한 해결 방법

필드 초기화를 빼요.

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

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

  C();
}

더 알아보기