[Flutter][공부] final과 const

uengmin·2024년 5월 3일

Flutter

목록 보기
7/20
post-thumbnail

final VS const

  • final과 const는 둘 다 한 번 값을 대입하면 변경 X
  • 변경할 수 없는 속성
  • 둘 다 변수 선언 시 앞에 붙는 키워드로 값이 할당 되고 난 후 변경을 허용하지 않음.

final

  • final은 실행 중에 값이 결정됨.
  • final은 이 파일이 실행될 때 해당 위치에서 값이 결정됨.

const

  • const는 컴파일 시에 값이 결정됨.
  • const는 이 파일을 컴파일할 때 기계어로 번역될 때 값이 결정됨.

예시

  • 어떤 프로그램이 실행될 때 시간에 대한 로그를 남기고 싶을 때는 DateTime.now()를 사용
    • var log1 = DateTime.now();
  • 실행 시에 시간이 결정되므로 final은 사용 가능
    • final log2 = DateTime.now();
  • 컴파일 시의 시간을 담을 수 없으므로 사용 불가. 실행은 지금이 아니라 내일도 할 수 있으므로 const X
    • const log3 = DateTime.now();

정리

  • final은 코드가 실행되면서 값이 바뀔 수 있지만 결정되고 나서는 바꿀 수 없다.
  • const는 코드 실행 전 부터 값이 정해져서 바꿀 수 없다.
  • final은 런타임 시점, const는 컴파일 시점에 할당된다.

실행되면서 값이 정해지는 불변상수를 사용하고 싶다면 final 사용,
더욱 강도높은 불변적인 상수를 사용하고 싶다면 const 사용.
만약 구분이 어렵다면, 상수를 써야하는 대부분의 경우에는 final을 이용하자.
그리고 const는 절대로, 죽어도 값이 안 변할 것 같은 곳에만 써주자.

0개의 댓글