**이 페이지에서 알 수 있는 내용
- const Keyword
- final Keyword와 const Keyword의 차이점**
**const**는 **final**과 마찬가지로 선언과 초기화 이뤄지면 변수의 값을 바꿀 수 없습니다.
**final**과 다른 점은 **const**는 컴파일 타임에 변수에 값이 있어야 합니다.
따라서 변수를 초기화까지 해야합니다.
**final**은 앱을 사용할 때 값이 들어간다고 하면,
**const**는 앱을 사용하기 전에 값이 들어가 있어야 합니다.
API를 사용할 때를 예시로 든다면,
**final**은 API key에 쓰이고,
**const**는 API에 있는 데이터에 쓰인다고 보면 됩니다.
void main() {
//final의 경우 런타임에 값이 지정되므로 값이 출력됩니다.
final DateTime now1 = DateTime.now();
print(now1);
Future.delayed(
Duration(milliseconds: 1000),
(){
final DateTime now3 = DateTime.now();
print(now3);
}
);
//const의 경우 컴파일 타임에 값이 지정되므로 에러 발생
const DateTime now0 = DateTime.now(); // error message : Ther constructor being called isn't a const constructor.
print(now0);
Future.delayed(
Duration(milliseconds: 1000),
(){
const DateTime now4 = DateTime.now();
print(now4);
}
);
}