struct 클래스 필드에 쓸 수 없는 타입
struct 클래스 필드에 쓸 수 없는 타입
Struct 의 하위 클래스에 있는 필드가 int, double, Array, Pointer, 또는 Struct·Union 의 하위 타입 외의 다른 타입을 가질 때 Dart analyzer가 만들어 내는 진단이에요.
본문
이 진단은 Struct 하위 클래스의 필드가 int, double, Array, Pointer, 또는 Struct 나 Union 의 하위 타입이 아닌 다른 타입을 가질 때 발생해요. FFI에 대한 자세한 내용은 C interop using dart:ffi 문서를 참고해요.
아래 코드는 필드 str 의 타입이 String 인데, 이는 Struct 하위 클래스 필드에 허용된 타입이 아니라서 이 진단을 만들어 내요.
import 'dart:ffi';
final class C extends Struct {
external String s;
@Int32()
external int i;
}
고치는 방법
필드에 허용된 타입 중 하나를 사용하면 돼요.
import 'dart:ffi';
import 'package:ffi/ffi.dart';
final class C extends Struct {
external Pointer<Utf8> s;
@Int32()
external int i;
}
더 알아보기
- C interop using dart:ffi
Struct,Union,Pointer,Array타입