반응형

 

[Dart 다트] 상수 - const와 final 차이점

 

 

   목차

  1. 상수
    1. const 
    2. final 

 

 

1. 상수

 

상수는 초기값 설정 이후 그 값을 변경할 수 없는 변수를 말하며, 상수가 되는 시점에 따라 컴파일시 결정되는 const 상수와 런타임에 결정되는 final 상수가 있습니다. 

 

 

1)  const 

  1. const는 컴파일 타임에 상수 지정시 사용합니다.
  2. 변수 선언과 동시에 초기값을 지정해야 합니다.
  3. 초기값 이후에는 값을 변경할 수 없습니다. 
  • (주의사항) class안에서 const 사용시에는 static 변수로 사용해야 합니다.
    왜냐하면, const는 컴파일 타임에 상수값이 지정되고 이후에는 변경할 수 없기 때문에, 객체가 생성될때마다 고유하게 존재하는 인스턴스 변수로는 사용할 수 없고, 클래스가 메모리에 로드될 때 한번만 초기화 하여 모든 인스턴스가 공유되어 사용하는 클래스 수준의 static 변수로만 사용 가능합니다.
const int a = 1;

class MyData {
  static const int b = 2;	// class 안에서 static const 변수로 사용함

  void display() {
    const int c = 3;
  }
}

 

 

2) final 

  1. final은 런타임에 상수 지정시 사용합니다.
  2. 변수 선언과 동시에 초기값을 꼭 지정할 필요는 없습니다.
  3. 초기값 설정 이후에는 값을 변경할 수 없습니다. 
final int a = 1;

class MyData {
  final int b = 2;

  void display() {
    final int c = 3;
  }
}

 

반응형

+ Recent posts