어떤 프로그램이 실행될 때 시간에 대한 로그를 남기고 싶을 때는 DateTime.now()를 사용
var log1 = DateTime.now();
실행 시에 시간이 결정되므로 final은 사용 가능
final log2 = DateTime.now();
컴파일 시의 시간을 담을 수 없으므로 사용 불가. 실행은 지금이 아니라 내일도 할 수 있으므로 const X
const log3 = DateTime.now();
정리
final은 코드가 실행되면서 값이 바뀔 수 있지만 결정되고 나서는 바꿀 수 없다.
const는 코드 실행 전 부터 값이 정해져서 바꿀 수 없다.
final은 런타임 시점, const는 컴파일 시점에 할당된다.
실행되면서 값이 정해지는 불변상수를 사용하고 싶다면 final 사용,
더욱 강도높은 불변적인 상수를 사용하고 싶다면 const 사용.
만약 구분이 어렵다면, 상수를 써야하는 대부분의 경우에는 final을 이용하자.
그리고 const는 절대로, 죽어도 값이 안 변할 것 같은 곳에만 써주자.