본문 바로가기
개발/Dart_Flutter

flutter const, final 차이 / stateless, stateful

by 리내(rinae) 2023. 10. 26.

const와 final은 모두 한번 변수가 정의되면 값을 바꿀 수 없는 변수를 의미한다. 이를 상수화라고 한다. 하지만 초기화 시켜주는 시점에서 차이가 있다.

 

const 변수는 컴파일 시에 상수화가 되고 final 변수는 런타임 시에 상수화가 진행된다.

즉, const는 컴파일 이전에 결정되는 변수에 사용이되고, final은 컴파일 후에 결정되는 변수에 사용한다. 그래서 final 같은 경우 초기화 시에 값을 할당하지 않아도 괜찮다.

 

  • immutable

stateless widget은 부모로부터 생성 시 인자를 받는데 이 인자는 컴파일 이후 런타임 상황에서 받는 경우가 많다. 그래서 final로 설정 해주어야 한다.

 

  • mutable

반면 stateful widget은 상태 객체를 스스로 생성할 수 있고 이를 제어할 수 있는 기능을 가진 widget인데,

Wiget은 life-cycle이 짧은 객체로 현재 상태를 반영하여 렌더링 하는 것이 목적인데, State 같은 경우는 re-build 되기 전까지 계속적으로 살아 있어 상태를 기억하는 역할을 한다. 따라서 버튼이 누르는 것과 같은 외부 이벤트가 발생할 때 상태 변화를 감지해서 Widget을 re-build 하는 역할을 한다.

댓글