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); // 오류
}
반응형