여정의 기록

[Dart] 인스턴스 이름 옆에 : 이거는 뭔가요? 본문

Work & Growth/Flutter (Dart)

[Dart] 인스턴스 이름 옆에 : 이거는 뭔가요?

Chelsey 2025. 10. 10. 21:07
728x90

Dart Constructors 를 살펴보다가 아래와 같은 코드를 마주했습니다.

const double xOrigin = 0;
const double yOrigin = 0;

class Credit {
  final double x;
  final double y;

  Credit(this.x, this.y);

  Credit.origin() : x = xOrigin, y = yOrigin;
}

 

Credit.origin() ? 그 옆에 : 는 뭐지?

Credit.origin() : x = xOrigin, y = yOrigin; // Named constructor

 

위 코드를 풀어 쓰자면 다음과 같습니다.

Credit.origin() : x = xOrigin, y = yOrigin; // Named constructor
인스턴스명.생성자명() : 인스턴스 변수 초기화;

 

여기서 : 콜론과 ; 세미콜론 사이의 내용은 'initializes instance variables' 한 것이며, 해당 인스턴스 생성자의 실행 본문이 아닙니다.

여기서는 지금 실행 본문이 비어져있지만, 만약 본문을 채워넣는다면 아래와 같은 형태가 됩니다.

 

Credit.origin() : x = xOrigin, y = yOrigin {
    print('Credeit Origin constructor is called');
}

 

만약 어딘가에서 origin 생성자를 실행한다면, 

origin() 생성자 호출 -> instance variables 초기화 -> 본문 순으로 실행됩니다.

 

앞서 x, y 값을 final로 설정해두었기 때문에 한번만 값 설정이 가능한데 딱 한번만 설정하기 위해서 위 코드처럼 : 뒤에 인스턴스 변수를 초기화를 해주는 것입니다.

 

728x90