초기화 목록과 생성자 리디렉션
final 필드를 설정하고 생성자를 재사용합니다
초기화 목록과 생성자 리디렉션은(는) CoddyKit의 무료 Dart Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Dart Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
final 필드 설정하기
final 필드는 생성자 본문이 실행되기 전에 설정되어야 합니다. 초기화 목록은 필드에 한 번의 값을 제공하기에 가장 적합한 곳입니다.
class Circle {
final double area;
Circle(double r) : area = 3.14 * r * r;
}초기화 목록 문법
매개변수 목록 뒤에 콜론과 쉼표로 구분한 할당문을 추가합니다. 이 초기화 목록은 생성자 본문보다 먼저 실행됩니다.
Point(int x, int y) : x = x, y = y;본문보다 먼저 실행됩니다
초기화 할당이 먼저 수행된 다음 본문이 실행됩니다. 따라서 목록에서 설정한 필드는 본문 안에서 이미 준비되어 있습니다.
class Box {
final int n;
Box(int v) : n = v {
print(n); // available
}
}파생 값 계산하기
초기화 목록을 사용해 매개변수에서 합계나 이름 같은 필드 값을 계산하십시오. 그러면 누구도 객체에 접근하기 전에 값이 준비됩니다.
class Rect {
final int area;
Rect(int w, int h) : area = w * h;
}여러 초기화 작성하기
여러 할당문을 쉼표로 구분하십시오. 각각의 할당문이 하나의 초기화 목록 안에서 서로 다른 필드를 설정합니다.
Point(int a, int b) : x = a, y = b;초기화 목록에서 assert 사용하기
개발 중에는 목록에 assert를 넣어 입력을 검사할 수 있습니다. 그러면 객체가 생성되기 전에 잘못된 값을 발견할 수 있습니다.
Circle(double r) : assert(r > 0), area = 3.14 * r * r;생성자 리디렉션
한 생성자는 콜론 뒤에서 this를 사용해 다른 생성자에 처리를 넘길 수 있습니다. 이렇게 하면 공통 설정을 한곳에 모을 수 있습니다.
class Point {
int x, y;
Point(this.x, this.y);
Point.zero() : this(0, 0);
}리디렉션하는 이유
리디렉션을 사용하면 필드 할당을 반복하지 않아도 됩니다. 이름 있는 생성자가 주 생성자를 호출하므로 로직을 DRY하게 유지할 수 있습니다.
Point.origin() : this(0, 0);리디렉션 생성자의 본문은 비어 있습니다
리디렉션하는 생성자에는 본문이 없습니다. this(...)를 사용해 대상 생성자에 전달하는 일만 하며, 실제 작업은 대상 생성자가 수행합니다.
class User {
String name;
User(this.name);
User.anon() : this("anon");
}실행 순서
실행 흐름을 기억하십시오. 초기화 목록과 리디렉션이 먼저 실행되고 그다음 본문이 실행됩니다. final 필드는 목록에서 설정하고 추가 작업은 본문에서 수행하십시오.
초기화 목록과 본문 비교
필드 할당, 특히 final 필드 할당에는 목록을 사용하고, 출력이나 assert를 넘어선 유효성 검사 또는 메서드 호출 같은 로직에는 본문을 사용하십시오.
빠른 확인
초기화 목록을 빠르게 확인해 보겠습니다.
복습: 초기화와 리디렉션
이제 초기화 목록으로 final 필드를 설정하고 값을 계산하며, assert로 검사하고, this를 사용해 한 생성자를 다른 생성자로 리디렉션할 수 있습니다. 🔀
자주 묻는 질문
“초기화 목록과 생성자 리디렉션” 강의는 무료인가요?
네 — “초기화 목록과 생성자 리디렉션” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Dart Academy 강의 전체를 잠금 해제할 수 있습니다. Dart Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“초기화 목록과 생성자 리디렉션”에서 뭘 배우나요?
final 필드를 설정하고 생성자를 재사용합니다 브라우저에서 직접 실행하는 실습 코드로 Dart Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Dart Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Dart Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“초기화 목록과 생성자 리디렉션” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Dart Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Dart Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 기본 생성자와 매개변수가 있는 생성자
- 명확한 의도를 위한 이름 있는 생성자
- 초기화 목록과 생성자 리디렉션
- factory와 const 생성자