[Flutter] const vs final

우루성·2024년 11월 4일

공통점

const와 final은 값을 한 번 할당한 후 변경할 수 없는 변수를 선언할 때 사용됩니다.

const

  • const는 컴파일타임에 값이 고정되는 상수를 선언할 때 사용합니다.
  • 코드가 컴파일될 때부터 값이 결정되며, 이후 어떤 상황에서도 값을 변경할 수 없습니다.
  • const는 주로 절대 변하지 않는 값이나 애플리케이션이 시작될 때부터 이미 고정된 값을 선언할 때 유용합니다.

final

  • final은 한 번만 값을 할당할 수 있는 변수를 선언할 때 사용합니다.
  • 런타임에 값이 결정되기 때문에, 앱 실행 시에 변수의 값이 설정됩니다.
  • 한 번 값이 할당된 이후에는 값을 변경할 수 없습니다.
  • 주로 실행 중에 동적으로 할당해야 하는 불변 값을 선언할 때 사용합니다.

컴파일타임 (Compile Time)

  • 컴파일타임은 코드를 기계어로 변환하는 시점입니다. 즉, 코드가 실행 파일로 만들어지는 단계입니다.
  • 이 단계에서 코드는 컴파일러에 의해 검토되고, 문법 오류, 타입 오류 등이 감지됩니다.
  • 컴파일 오류는 주로 문법 오류, 변수 타입 오류 등으로, 코드가 제대로 작성되지 않았을 때 발생합니다.

런타임 (Run Time)

  • 런타임은 코드가 실행되는 시점입니다. 사용자가 앱을 실행하여 실제로 동작하는 과정에서 발생하는 시점입니다.
  • 이 단계에서는 코드가 실제로 수행되기 때문에, 실행 중 발생하는 오류(예: null 값 참조, 네트워크 실패)와 같은 런타임 오류가 발생할 수 있습니다.
  • 예를 들어, 데이터베이스에서 데이터를 가져오거나, UI와 상호작용하는 것처럼 실제 사용자와의 상호작용을 포함한 작업이 이 시점에서 이루어집니다.

const와 final 차이점 요약

특성constfinal
값의 결정 시점컴파일타임런타임
값의 변경 여부컴파일 시점부터 변경 불가한 번 할당 후 변경 불가
사용 용도절대 변하지 않는 상수 값실행 중에 할당되는 불변 값
예시const double pi = 3.14159;final DateTime now = DateTime.now();
profile
Flutter 개발자

0개의 댓글