[왕초보 무료 프로그래밍 언어 강의] [Dart] #10 — Final, Const

Ji Ho Choi
코드팩토리
Published in
3 min readOct 15, 2020

--

Final 타입

void main(){
final DateTime now = new DateTime.now();
final now2 = new DateTime.now(); print(now);
print(now2);
}
  • new DateTime.now(); 는 현재 날짜와 시간을 결정하는 함수다.
  • Final 은 변수 타입 입력 전에 입력 하거나 변수 타입을 생략하고 사용해도 된다.
  • 변수 타입을 생략 후 사용할 경우 var 과 마찬가지로 변수의 값에 의해서 변수의 타입이 유추된다.

Final 타입 값 변경

void main(){
final name = '블랙핑크';
name = '코드팩토리';
}
  • final 로 지정한 변수는 값을 변경할 수 없다.

Const 타입

void main(){
const name = '블랙핑크';
const String name2 = '코드팩토리'; print(name);
print(name2);
}
  • const 또한 두가지 방법으로 선언할 수 있다.
  • final 과 마찬가지로 const 또한 한번 선언하면 변수의 값을 변경할 수 없다.

Const vs Final 차이

void main(){
final now = new DateTime.now();
print(now); final now2 = new DateTime.now();

print(now2);
const now3 = new DateTime.now();
}
  • final 과 const 의 차이는 컴파일 타임에 변수의 값을 알 수 있냐의 차이다.
  • 컴파일 타임은 언어가 컴퓨터 언어로 변환되는 시기를 말한다.
  • 런타임은 변환된 코드가 실행이 되는 순간을 말한다.
  • new DateTime.now() 는 현재 시간이 해당 코드가 실행이 될때 기준으로 저장이 된다. 이를 쉽게 알 수 있는 방법은 여러개의 new DateTime.now() 를 실행 해보는 방법이다. 만약 컴파일 타임에 값이 결정이 된다면 모든 new DateTime.now(); 의 값을 똑같을 것이고 런타임에 결정된다면 해당 줄이 실행이 될때 값이 결정되기 때문에 모두 값이 다를것이다.
  • new DateTime.now() 는 런타임에 값이 결정되기 때문에 const 로 선언할 수 없다. 쉽게말해 코드를 작성하는 순간 변수의 값을 알 수 없으면 const 를 사용할 수 없는 것이다.

--

--