본문 바로가기
Flutter

[flutter/dart] const 와 final 의 차이점

by somarok 2024. 3. 6.

 

> const

const는 '상수', 한 번 값을 할당하면 바꿀 수 없는 특별한 값을 뜻한다. 예를 들어, '10'이라는 숫자를 const로 선언하면, 이 값은 항상 10으로 유지된다. const는 프로그램 실행 전 부터 이미 값이 정해져있을 때 사용한다.

 

> final


final은 '한 번만 값을 할당할 수 있는 변수'라고 생각하면 된다. 한 번 값을 할당하고 나면 그 값을 바꿀 수 없지만, 그 값은 프로그램이 실행중에 final을 만나는 시점에서 값을 할당해주기 때문에, 매 상황마다 값이 변경 될 수 있다. 
final은 프로그램을 만들 때 값이 최소에 한 번 할당된 후 그 값을 계속 사용해야 할 때 사용한다.



즉, const는 값이 언제나 어느때나 같아야 할 때 사용하고, final은 값이 최초에 할당된 후 변하지 않아야 할 때 사용한다.


const로 선언한 변수는 프로그램이 실행 될 때 메모리를 미리 할당해버리지만, final은 해당 코드를 만난 시점에서 메모리를 할당하므로 효율적이다.