반응형

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을 사용해서 초기화해야 합니다.

 

 

반응형

+ Recent posts