Flutter

Flutter: Dart의 final과 const 선언자 비교

helperwoo Dev 2020. 11. 25. 01:10
반응형



Dart에서 변경할 수 없는 변수를 선언할때 finalconst를 사용한다.

final name = 'Bob';
const name = 'Bob';


두 선언자는 같은 기능을 하지만, 변수가 설정되는 시점에서 차이점을 갖는다.

finalrun-time에, constcompile-time에 초기화된다.

 

결론적으로 finalconst로 선언된 변수는 최종 값을 변수이지만 설정되는 시점에 알맞게 사용되어야 한다.

 

final ↔️ const 공통점


➡️ 변수 선언시 초기화 되어야한다

final name = 'Bob';

 

➡️ 한번 설정된 변수의 값은 변경할 수 없다

name = 'Alice'; // error: final|const 변수는 한번만 설정할 수 있음.

 

final ↔️ const 차이점


final

➡️ 타입에 관계없이 할당 가능

➡️ 값이 object인 경우 안의 필드는 변경 가능

final list = [1, 2, 3];
list[2] = 1;

 

const

➡️ 숫자, 문자열, const 변수, 계산식 할당 가능

const num = 1;
const str = "str";
const constantList = const [1, 2, 3];
const atm = 1.01325 * bar;

 

➡️ 값이 object인 경우 안의 필드도 변경 불가능

const list = [1, 2, 3];
list[2] = 1; // error: const 변수는 필드도 변경 불가능

 

➡️ Dart Guides > Variables | Final and Const

 

A tour of the Dart language

A tour of all of the major Dart language features.

dart.dev

 

 

반응형