변수에서 Enum 사용하기
Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 60번째.
이제 열거형(enums)을 정의하는 방법을 알게 되었으니, 프로그램에서 실제로 사용하는 방법을 배워보겠습니다. 열거형을 생성하고 나면, 해당 열거형 타입의 변수를 선언하고 특정 값을 할당할 수 있습니다.
enum 타입의 변수를 선언하려면, 다른 데이터 타입과 마찬가지로 enum 이름 뒤에 변수 이름을 지정합니다:
Weather todayWeather = Weather.sunny;점 표기법을 사용하여 열거형 값에 액세스하는 방식에 주목하세요: Weather.sunny. 이는 Dart에 Weather 열거형의 sunny 값을 사용하겠다고 알리는 것입니다.
변수의 값을 다른 유효한 열거형(enum) 값으로 변경할 수 있습니다:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;enum 변수를 사용하는 것의 장점은 Dart가 유효한 enum 값만 할당할 수 있도록 보장한다는 점입니다. Weather 변수에 "stormy"나 다른 유효하지 않은 값을 실수로 할당할 수 없으므로, 일반적인 프로그래밍 오류를 방지하고 코드를 더 신뢰할 수 있게 만들어 줍니다.
챌린지
쉬움열거형(enums)과 변수를 사용하여 간단한 작업 추적 시스템을 관리하는 프로그램을 만드세요. 여러분의 과제는 다음과 같습니다:
todo,inProgress,testing,completed,cancelled값을 가지는TaskStatus라는 이름의 열거형을 정의합니다.TaskStatus타입의task1Status변수를 생성하고TaskStatus.todo값을 할당합니다.TaskStatus타입의task2Status변수를 생성하고TaskStatus.inProgress값을 할당합니다.TaskStatus타입의task3Status변수를 생성하고TaskStatus.completed값을 할당합니다.- 모든 작업의 초기 상태를 다음의 정확한 형식으로 출력합니다:
Task 1 status: TaskStatus.todo - 작업 2의 초기 상태를 다음의 정확한 형식으로 출력합니다:
Task 2 status: TaskStatus.inProgress - 작업 3의 초기 상태를 다음의 정확한 형식으로 출력합니다:
Task 3 status: TaskStatus.completed task1Status를TaskStatus.inProgress로 업데이트합니다.task2Status를TaskStatus.testing으로 업데이트합니다.- 업데이트된 작업 1의 상태를 다음의 정확한 형식으로 출력합니다:
Updated Task 1 status: TaskStatus.inProgress - 업데이트된 작업 2의 상태를 다음의 정확한 형식으로 출력합니다:
Updated Task 2 status: TaskStatus.testing - 작업 3의 최종 상태를 다음의 정확한 형식으로 출력합니다:
Final Task 3 status: TaskStatus.completed
프로그램은 enum 키워드를 사용한 적절한 열거형 정의, 열거형 타입을 사용한 변수 선언, 점 표기법(dot notation)을 사용한 열거형 값 접근, 그리고 열거형 변수 업데이트를 보여주어야 합니다. 열거형 이름은 대문자로 시작하고 열거형 값은 소문자로 작성하는 Dart 명명 규칙을 따라야 합니다.
직접 해보기
import 'dart:io';
// TODO: 여기에 TaskStatus 열거형(enum)을 정의하세요
void main() {
// TODO: 여기에 코드를 작성하세요
// 1. task1Status 변수를 생성하고 TaskStatus.todo를 할당하세요
// 2. task2Status 변수를 생성하고 TaskStatus.inProgress를 할당하세요
// 3. task3Status 변수를 생성하고 TaskStatus.completed를 할당하세요
// 4. 모든 작업의 초기 상태를 출력하세요
// 5. 필요에 따라 작업 상태를 업데이트하세요
// 6. 업데이트된 최종 상태를 출력하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 & 흐름의 모든 레슨
1고급 리스트 조작
리스트 속성: first 및 last리스트 상태: isEmpty 및 isNotEmpty리스트 뒤집기리스트에 추가: insert리스트 요소 제거: removeWhere리스트에서 찾기: indexOf리스트 정렬리스트 섞기요약 - 리스트 정리 도구