const는 static 필드에서만 쓸 수 있어요
const는 static 필드에서만 쓸 수 있어요
클래스에 필드를 선언할 때 const를 붙이면 안 되는 경우가 있어요. 인스턴스 필드는 각 객체마다 따로 값을 갖는 필드인데, const는 컴파일 시점에 값이 확정되는 성질이라 인스턴스 필드에는 맞지 않거든요. 이 진단이 어떤 상황에 나오고 어떻게 고치는지 함께 볼게요.
본문
Description
Dart 분석기는 인스턴스 필드에 const를 붙였을 때 이 진단을 내요. const는 static 필드에서만 선언할 수 있거든요.
Example
아래 코드는 f가 인스턴스 필드인데 const로 선언되어서 이 진단이 발생해요.
class C {
const int f = 3;
}
Common fixes
필드가 인스턴스 필드여야 한다면, const 키워드를 빼거나 final로 바꿔 주면 돼요.
class C {
final int f = 3;
}
정말로 const 필드가 필요하다면, 필드를 static 필드로 만들어 주면 돼요.
class C {
static const int f = 3;
}