[Flutter] 키워드 정리

도톨이·2024년 7월 28일
0

앱 개발-flutter

목록 보기
29/29

Flutter 프로젝트를 만들다가 키워드에 혼동이 와서 정리 겸 작성한 게시글이다.

다음의 블로그를 참고하였다.
https://www.funwithflutter.dev/flutter-dart-when-to-use-var-final-const-static/

우선 간단히 요약하자면 다음의 순서로 선호될 것 이다. const -> final -> var

키워드를 설명하기에 앞서
Mutable 과 Immutable 을 이해해야한다.

mutable 오브젝트는 생성된 후에 변경 가능하다. 반면, Immutable 오브젝트는 한 번 생성되면 변경이 불가능하다.

var

var 을 사용하면 타입을 지정하지 않고 변수를 할당할 수 있다. 타입은 초기 value 로 부터 유추된다.

다음처럼 초기에 number 을 숫자 1로 초기화한다면 시스템은 타입을 int 로 유추한다.

var number = 1;

int 값을 덧셈할당 연산자로 변경하는 건 허용되지만

number += 1

아예 다른 타입을 할당하는 건 타입 에러가 발생한다.

number = 'test'; // Error!

언제 쓸까?
var 은 업데이트 해야하는 변경 가능한(mutable) 변수가 필요한 경우 사용한다. 만약 내가 타입을 알고있다면 타입을 써준다.

late int number; // using int instead of var

// ... later in your program

number = 10; // setting a new value

final

finalvar과 똑같은데 immutable 이냐 mutable 이냐의 차이를 가진다. final 은 변경될 수 없어서, 한 번만 세팅할 수 있다.
final 은 프로그램의 다른 부분에서 의도치 않게 값을 업데이트할 수 없도록 보장하므로 코드에 안정성을 제공한다.

final number = 1;
number += 1; // 컴파일 에러!

언제 쓸까?
컴파일 시 값을 모르는 경우 final 을 사용할 수 있다. 글면 런타임에 계산되거나 가져올 수 있다. 예를 들어 변경될 가능성이 없는 HTTP 리스폰스나 local file 혹은 database 로 부터 무언가를 읽을때! 처럼 컴파일 시점에는 알 수 없고 불변성을 유지하려는 모든게 final 이다.

const

const 는 컴파일 타임 상수이다. const는 변수뿐만 아니라 그 변수의 모든 하위 요소까지도 불변성을 가진다. 즉, 깊은 불변성을 보장한다. const로 선언된 변수는 컴파일 시점에 이미 결정된 상수 값이어야 한다. 따라서 컴파일 타임에 값을 알 수 없는 상황에서는 사용할 수 없다.

const value = "A fixed string that won't change";
const calculation = 1 + 2 + 3;
const widget = Text('This is a constant widget');
const padding = EdgeInsets.all(8);

언제 쓸까?
값이 컴파일 시에 계산될 수 있을 경우, 수정할 수 없는 리스트를 원하는 경우, 위젯 빌드 비용을 줄이는 경우에 사용될 수 있다.

가능하면 const 를 사용하는 게 선호된다. const 로 위젯을 사용하면 Flutter 애플리케이션을 개발할 때 가장 쉬운 방식으로 성능을 향상시킬 수 있다. 해당 위젯을 사용하면 Flutter 엔진이 불필요한 위젯 리빌드를 피할 수 있다.

profile
Computer Engineering

0개의 댓글

관련 채용 정보