// 1. 상수 데이터 초기화
const primaryColor = "green"; // 컴파일 시점에 초기화, 타입 생략 가능(var로 정의)
final secondaryColor = "red"; // 런타임 시점에 초기화, 타입 생략 가능(var로 정의)
class Button {
final String text;
const Button(this.text); // Button클래스 생성자는 const로 선언
}
void main() {
Button b1 = const Button("로그인"); // const 생성자를 사용하여 생성, 동일한 인스턴스가 생성
Button b2 = const Button("로그인"); // 두 객체의 해시 코드 값이 동일
print(b1.hashCode);
print(b2.hashCode);
}
final
- 무조건 초기화 실행
- 변수를 초기화한 후 값을 변경할 수 없음을 의미
- 런타임 시점에 초기화
- 타입 생략이 가능(var로 정의)
- 한 번만 설정되어야 하지만, 런타임 시에 설정 될 수 있는 값
- 클래스 내에서는 인스턴스 변수로 사용, 객체가 생성될 때 초기화
- 클래스 외부에서는 전역 변수나 지역 변수로 사용
const
- 컴파일 시점에 상수로 평가
- 값이 절대 변경되지 않음을 의미
- 모든 인스턴스에서 동일할 값을 가짐
- 불변의 상수 값, 컴파일 시에 설정되어야하는 값
- 클래스 내에서는 정적 상수로 사용
Share article