본문 바로가기
개발해보겡/Flutter

Dart final & const & late 차이

by 개발자욱 2023. 1. 1.
728x90
반응형

Dart에서 final과 const는 똑같아 보이면서도 다른 차이가 있습니다.

공통점은 한 번 변수에 값을 할당하면 변경할 수 없다는 점입니다.

void main() {
  final name = 'name';
  // The final variable 'name' can only be set once.
  name = 'nickname'; // 오류

  const nickname = 'nickname';
  // Constant variables can't be assigned a value.
  nickname = 'name'; // 오류
}

차이점은 

final의 경우 Runtime에 값이 할당될 수 있다는 것이고

const의 경우 Compile Time Constant로 선언과 동시에 초기화되어야 한다는 것입니다.

void main() {
  
  final name;
 
 // The constant 'nickname' must be initialized.
 // Try adding an initialization to the declaration 
  const nickname; // 오류

}

final과 같이 Runtime에 초기화 가능한 경우에

late을 통해 명시적으로 사용할 수 있습니다.

late을 사용하면 실수하는 것을 방지할 수 있으며

공동 작업을 하는 경우 필수적입니다.

void main() {
  
  late var name;

  // The late local variable 'name' is definitely unassigned at this point.
  // Ensure that it is assigned on necessary execution paths.
  print(name); // 오류

}

 

반응형