Dart 언어의 Final 및 const 지시 변수
글. 수알치 오상문
C/C++ 언어에서 상수형 변수를 만들기 위해 const 지시어를 사용합니다. 비록 변수이더라도 const 지시어가 사용돠면 초기화 이후에 값을 변경할 수 없습니다.
Dart 언어에서는 상수형 변수에 final 그리고 const 지시어를 제공합니다.
둘의 차이점은 언제 상수형 변수로 지정되는 가입니다. 우리가 익숙한 상수형 변수 선언은 const를 이용하는 것입니다. 이 지시어는 컴파일 시간에 상수형으로 지정됩니다. 반면에 final 지시어는 컴파일 또는 실행 시간에 처음 정해지는 값이 상수 값으로 사용됩니다.
final name = 'Bob'; // final String nickname = 'Bobby';
name 변수는 초기화 되었기에 값을 수정할 수 없습니다. 그리고 컴파일 시간에 값을 초기화할 수 있으므로 컴파일 시간에 상수형 변수로 확정됩니다.
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
const 변수는 선언되는 즉시 값을 초기화할 수 있어야 합니다. 참고로 초기화 값에 const를 사용하면 변수에서 const를 생략할 수 았습니다.
var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`
일반적은 경우 final 또는 const는 비슷하게 동작합니다. 그러나 실행 시간에 초기화를 해야 하는 경우, 예를 들어 실행 시 시간 정보를 받아서 초기화 하는 경우라면 final을 사용해서 초기화해야 합니다.
'Dart' 카테고리의 다른 글
Dart, 상수형 변수/자료를 만드는 const, final 지시어 (0) | 2021.06.12 |
---|---|
Dart 언어 주요 개념 (0) | 2021.06.12 |
Dart 변수 기본 값과 나중 초기화 late 변수 (0) | 2021.06.11 |
Dart 변수 자료형 지정 방법 (0) | 2021.06.11 |
Dart 언어 키워드(예약어) (0) | 2021.06.11 |