const 는 마치 final과 같다. =false
Flutter에서 const와 final은 모두 불변(immutable) 변수를 선언하는 키워드입니다. 그러나 둘 사이에는 몇 가지 중요한 차이점이 있습니다.
const: const 키워드로 선언된 변수는 컴파일 타임 상수(compile-time constant)입니다. 즉, 변수가 선언될 때 해당 값이 결정되며, 이후에는 값을 변경할 수 없습니다. const로 선언된 변수는 반드시 리터럴(literal) 값을 가져야 합니다.
final: final 키워드로 선언된 변수는 런타임 상수(runtime constant)입니다. 즉, 변수가 초기화될 때 결정되며, 이후에는 값을 변경할 수 없습니다. final로 선언된 변수는 리터럴 값을 가져야 할 필요는 없으며, 다른 변수나 표현식의 결과를 할당할 수 있습니다.
또한, const는 클래스, 메서드, 생성자 및 변수에서 사용할 수 있지만, final은 변수, 클래스 멤버 변수 및 로컬 변수에서만 사용할 수 있습니다.
예를 들어, 다음과 같이 const와 final을 사용하여 변수를 선언할 수 있습니다.
const pi = 3.14; // const 변수 선언
final currentTime = DateTime.now(); // final 변수 선언
위 코드에서 pi는 컴파일 타임 상수이므로, 다른 값으로 재할당할 수 없습니다. 반면에, currentTime은 런타임 상수이므로 초기화할 때 결정되며, 이후에는 값을 변경할 수 없습니다.
따라서, const와 final은 모두 불변 변수를 선언하는 키워드이지만, 상수의 값을 결정하는 시점이나 변수를 사용할 수 있는 범위 등에서 차이점이 있습니다.