junior developer :)/Flutter & Dart

[Dart] const와 final 차이

ㅁ윤슬ㅁ 2023. 7. 20. 18:32
728x90
반응형

저번에도 한번 const와 final의 차이를 정리했었는데 그 전에는 오류와 함께 정리하다 보니 오류해결에 중심이 되어있었던 것 같다.
이번에는 const와 final의 차이를 면접질문에 답하듯 간략하면서 한눈에 파악할 수 있게 정리해보려고 한다.

const 와 final 공통점

const와 final은 한번 값을 지정하면 바꿀 수 없다는 공통점이 있다.

const

- 컴파일 타임 상수 결정(컴파일 시 값이 결정됨)

그렇기 때문에 실행시에 값이 결정되는 new.DateTime.now()는 const로 설정할 수 없다

final

- 전체 소스 주기 중 한 번만 설정된다.(실행 중 답이 결정됨)

- 선언 시 값을 부여하지 않고 이후 최초 1회 값을 부여해 줄 수 있다.

const와 final을 나눠서 사용하는 이유

final이 조금 더 사용해야하는 경우가 많을 수는 있지만
const의 경우 앱을 생성할 때 한번만 생성을 하게 되기 때문에 항상 같은 내용을 표시해 주는 경우 const를 사용한다면 불필요한 내부 리소스를 방지할 수 있다.


 

Q. const와 final의 차이점을 말해주세요

A.
먼저 const 와 final은 한 번 값을 지정하면 값을 다시 바꿀 수 없다는 공통점이 있습니다.
이 둘의 차이점은 생성 시점에 있습니다.
const는 컴파일 시 값이 정해지고 final의 경우 실행 시 값이 정해집니다.
그렇기 때문에 DateTime과 같이 실행시에 값이 정해지는 값의 경우  const로 정의 할 수 없습니다.
항상 같은 내용을 표시해 주는 경우 final 보단 const를 사용한다면 불필요한 내부 리소스를 방지할 수 있습니다.
728x90
반응형