클래스가 절대 변경되지 않는 객체를 생성하는 경우 이러한 객체를 compile-time constants로 만들 수 있다. 이렇게 하려면 const생성자를 정의하고 모든 인스턴스 변수를 최종적으로 정할 수 있다.
예시 코드를 통해 확인해보자
class Recipe {
final List<String> ingredients;
final int calories;
final double milligramsOfSodium;
const Recipe(this.ingredients, this.calories, this.milligramsOfSodium);
}
Recipe 앞에 const를 붙여 클래스가 변경되지 않는 객체의 상수 생성자를 만듭니다.
const 사용 설명
const 의 경우, 컴파일 타임에서 상수를 정의할 수 있다. 즉, const 로 정의한 상수는 런타임에서 정의되는 값을 설정할 수 없다는 의미다. 예를 들어 DateTime.now() 의 경우 런타임에서 호출 될 때마다 결과 값이 다른데 이러한 값은 const 로 설정할 수 없다.