IT 개발/Flutter & Dart
[Flutter] Dart 상수 - const와 final 차이점
KADOSHOLY
2025. 2. 8. 23:39
반응형
[Flutter] Dart 상수 - const와 final 차이점
목차
- 상수
- const
- final
1. 상수
상수는 초기값 설정 이후 그 값을 변경할 수 없는 변수를 말하며, 상수가 되는 시점에 따라 컴파일시 결정되는 const 상수와 런타임에 결정되는 final 상수가 있습니다.
1) const
- const는 컴파일 타임에 상수 지정시 사용합니다.
- 변수 선언과 동시에 초기값을 지정해야 합니다.
- 초기값 이후에는 값을 변경할 수 없습니다.
- (주의사항) class안에서 const 사용시에는 static 변수로 사용해야 합니다.
왜냐하면, const는 컴파일 타임에 상수값이 지정되고 이후에는 변경할 수 없기 때문에, 객체가 생성될때마다 고유하게 존재하는 인스턴스 변수로는 사용할 수 없고, 클래스가 메모리에 로드될 때 한번만 초기화 하여 모든 인스턴스가 공유되어 사용하는 클래스 수준의 static 변수로만 사용 가능합니다.
const int a = 1;
class MyData {
static const int b = 2; // class 안에서 static const 변수로 사용함
void display() {
const int c = 3;
}
}
2) final
- final은 런타임에 상수 지정시 사용합니다.
- 변수 선언과 동시에 초기값을 꼭 지정할 필요는 없습니다.
- 초기값 설정 이후에는 값을 변경할 수 없습니다.
final int a = 1;
class MyData {
final int b = 2;
void display() {
final int c = 3;
}
}
반응형