반응형
Dart에서 변경할 수 없는 변수를 선언할때 final와 const를 사용한다.
final name = 'Bob';
const name = 'Bob';
두 선언자는 같은 기능을 하지만, 변수가 설정되는 시점에서 차이점을 갖는다.
final은 run-time에, const는 compile-time에 초기화된다.
결론적으로 final과 const로 선언된 변수는 최종 값을 변수이지만 설정되는 시점에 알맞게 사용되어야 한다.
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
반응형
'Flutter' 카테고리의 다른 글
Dart Class Constructors 생성자 [Constructors, Named Constructors, Initializer List] (0) | 2021.06.16 |
---|