main(){
final String name = 'RN';
print(name); => name = 'RN'
//final[var] name = 'RN'과 동일
const String name2 = 'Flutter';
print(name2); => name2 = 'Flutter'
//const[var] name = 'Flutter'와 동일
}
final
의 경우 runtime
런타임에서 값을 결정할 수 있는 변수를 선언할 때 사용된다.
const
의 경우 compile time
컴파일 타임 상수를 선언할 때 사용됩니다.
The final variable 'name' can only be set once.
Constant variables can't be assigned a value. 라는 error 문구가 뜸
final DateTime now = DateTime.now();
print(now); => runtime 실행 시간 출력
final int x = DateTime.now().year;
print(x); => 2023
const DateTime now = DateTime.now();
print(now); => 출력 시 error
DateTime
의 경우 빌드타임(컴파일타임)이 아닌 런타임 기준으로 시간이 입력되는데, const
는 빌드타임에 값을 모르는 경우는 사용할 수 없으니 const
와 DateTime
을 함께 쓰면 error가 남.
`const` 는 상수 변수 (원주율, 최댓값, 이름, 타이틀 , 위젯 등)에 많이 사용되고,
`final` 은 인스턴스를 담거나, 지연 초기화 등 필요한 부분에서 사용이 가능하다.