cast_from_nullable_always_fails 진단: 값이 할당되지 않은 nullable 변수를 캐스팅할 때
cast_from_nullable_always_fails 진단: 값이 할당되지 않은 nullable 변수를 캐스팅할 때
nullable 타입의 지역 변수가 아직 할당되지 않았는데 null이 아닌 타입으로 캐스팅되면, 그 변수는 아직 기본값인 null을 가지므로 캐스팅이 예외를 던져요. Dart 분석기가 이런 경우 cast_from_nullable_always_fails 진단을 알려줘요.
본문
설명
분석기는 nullable 타입을 가진 지역 변수가 아직 할당되지 않았는데 null이 아닌 타입으로 캐스팅될 때 이 진단을 만들어요. 변수가 아직 할당되지 않았으므로 기본값인 null을 가지기 때문에, 캐스팅이 예외를 던지게 돼요.
예시
다음 코드는 변수 x가 null 값을 가진다고 알려져 있는데도 null이 아닌 타입인 int로 캐스팅되기 때문에 이 진단을 만들어요.
void f() {
num? x;
x as int;
print(x);
}
흔한 해결 방법
캐스팅 전에 변수가 값을 가질 것으로 기대한다면, 초기화나 대입을 추가해요.
void f() {
num? x = 3;
x as int;
print(x);
}
변수가 할당될 것으로 기대하지 않는다면, 캐스팅을 제거해요.
void f() {
num? x;
print(x);
}