변수에서 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 명명 규칙을 따라야 합니다.
치트 시트
enum 타입의 변수를 선언하려면 enum 이름 뒤에 변수 이름을 지정합니다:
Weather todayWeather = Weather.sunny;EnumName.value 형식의 점 표기법을 사용하여 enum 값에 액세스합니다:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;Dart는 enum 변수에 유효한 enum 값만 할당할 수 있도록 보장하여, 잘못된 할당을 방지하고 코드를 더 안정적으로 만듭니다.
직접 해보기
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리스트 정렬리스트 섞기요약 - 리스트 정리 도구