728x90
Final VS Const
Final과 Const는 둘 다 변경할 수 없는 속성을 뜻한다.
void main() {
const int myConst = 2;
final int myFinal = 3;
myConst = 4; // error 발생, Const 변수에는 값을 할당할 수 없다.
myFinal = 6; // error 발생, Final 변수에는 값을 할당할 수 없다.
}
위와 같이 두 속성은 둘다 한번 값을 대입하면 변경할 수 없어 같은 일을 하지만 미묘한 차이점이 있다.
const 속성은 컴파일 타임 상수인 반면 final은 전체 소스 주기 중 한 번만 설정된다.
다시 말해 final은 실행 중 값이 결정되지만 const는 컴파일 시 값이 결정된다.
예시
final finalTime = DateTime.now(); // 실행 중 시간이 결정되므로 사용 가능
const constTime = DateTime.now(); // error 발생, 컴파일 시 시간을 담을 수가 없음
정리
- 일반 String은 언제든지 바꿀 수 있다.
- final은 코드가 실행되면서 값이 바뀔 수 있지만 결정되고 나서는 바꿀 수 없다.
- const는 코드 실행 전 부터 값이 정해져서 바꿀 수 없다.
실행되면서 값이 정해지는 불변상수를 사용하고 싶다면 final을,
더욱 강도높은 불변적인 상수를 사용하고 싶다면 const를 사용하자.
'Flutter' 카테고리의 다른 글
[Flutter] Firebase DB 값 순서정렬(Timestamp, 시간 순 정렬) (0) | 2022.04.18 |
---|---|
[Flutter] 코드 리팩토링 & 소스추출에서의 Widget과 Method의 차이 (0) | 2022.04.17 |
[Flutter] 플러터 페이지 간 이동과 context의 의미 (Multi-Screen Apps Using Routes and Navigation And About context) (0) | 2022.03.27 |
[Flutter] 플루터 앱 실행 오류 (The The minCompileSdk (31) specified in a dependency's AAR metadata ...) (0) | 2022.03.16 |
[Flutter] 플러터에 대해 (플러터 개요) (0) | 2022.03.02 |