[Dart] final & const

Aiden·2023년 3월 10일
0

dart

목록 보기
3/5

final vs const

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 문구가 뜸


예시1

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는 빌드타임에 값을 모르는 경우는 사용할 수 없으니 constDateTime 을 함께 쓰면 error가 남.


`const` 는 상수 변수 (원주율, 최댓값, 이름, 타이틀 , 위젯 등)에 많이 사용되고,

`final` 은 인스턴스를 담거나, 지연 초기화 등 필요한 부분에서 사용이 가능하다. 
profile
PM에서 개발자로

0개의 댓글