다른 프로그래밍언어와 마찬가지로 Dart에서도 상수를 선언할 수 있습니다. 선언된 상수는 당연히 다른 값으로 바뀔 수 없죠. 역시나 타입추론도 가능합니다. final 혹은 const를 이용해서 선언할 수 있습니다.
final String str1 = 'hello World!';
final str2 = 'hello World!';
str1 = 'Me too'; //이미 사용되었으니 에러
print(str2 is String); //true값을 반환
const String str1 = 'hello World!';
const str2 = 'hello World!';
str1 = 'Me too'; //이미 사용되었으니 에러
print(str2 is String); //true값을 반환
final과 const의 차이점은 역시나 결정되는 시점이겠죠. dynamic형 데이터가 런타임에 결정되듯이, final형 상수는 런타임에 결정되고, const는 컴파일때 결정됩니다. 역시나 적절하게 const를 사용하는 것이 성능 부분에서 이점이 될 수 있습니다.