블로그

[dart] const, final

게시 1분

공통점
상수(constant)로 만든다.

차이점
초기화 시점이 다르다.

초기화 시점
const → 컴파일 타임에 값을 결정 → 런타임에서 값의 결정 불가능
final → 컴파일 타임 이후에도 값을 결정 → 런타임에도 값의 결정 가능

(+ final로 정의된 List는 추가연산을 사용할 수 있다.)

예시
DateTime.now() 라는 함수가 있다.
이 함수는 현재 시간을 불러오기 때문에, 불러올 때마다 값이 달라진다.
즉 일단 프로그램을 실행해야, 함수로 불러온 값을 확인할 수 있다. (= 런타임에 확인할 수 있다)

const 키워드는 런타임에서 값의 결정이 불가능하고
final 키워드는 런타임에서 값의 결정이 가능하므로 다음과 같은 결과를 얻을 수 있다.
(함수의 생성자가 const로 정의되었다면, const에서도 오류가 나지 않는다)

final DateTime curTime = DateTime.now(); // 문제 없음 const DateTime curTime = DateTime.now(); // compile error

댓글

댓글을 남기면 닉네임(또는 GitHub 계정 정보)이 저장됩니다. 개인정보처리방침

GitHub