final double pi = 3.141592;
const double e = 2.71828;
pi
와 e
는 이제 다른 값으로 변경할 수 없다. 다른 값을 변경하려고 시도하면 컴파일 오류가 발생한다.
const
로 정의한 상수는 런타임에서 정의되는 값을 설정할 수 없다.
final
은 런타임에서 결정되는 값도 설정할 있다.
const List<String> companies = [];
languages.add('dart');
/*
// compile error
companies.add('Google');
languages = ['Java'];
*/
final
은 값의 변경은 안되도 추가는 가능하다.
const
는 값의 변경은 물론 추가가 불가능하다