在变量中使用枚举
本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 60 课,共 65 课。
现在你已经知道如何定义枚举了,接下来学习如何在程序中实际使用它们。创建枚举后,你可以声明该枚举类型的变量,并为它们赋予特定的值。
要声明一个枚举类型的变量,你需要先写枚举名称,再写变量名称,这和其他数据类型一样:
Weather todayWeather = Weather.sunny;注意,你可以使用点表示法访问枚举值:Weather.sunny。这会告诉 Dart,你要获取 Weather 枚举中的 sunny 值。
你可以将变量的值改为任何其他有效的枚举值:
todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;使用枚举变量的好处是,Dart 会确保你只能赋予有效的枚举值。你不能意外地将 "stormy" 或其他无效值赋给 Weather 变量,这样可以避免常见的编程错误,让代码更加可靠。
挑战
简单创建一个程序,使用枚举和变量管理一个简单的任务跟踪系统。你需要:
- 定义一个名为
TaskStatus的枚举,包含以下值:todo、inProgress、testing、completed和cancelled - 创建一个名为
task1Status、类型为TaskStatus的变量,并将值TaskStatus.todo赋给它 - 创建一个名为
task2Status、类型为TaskStatus的变量,并将值TaskStatus.inProgress赋给它 - 创建一个名为
task3Status、类型为TaskStatus的变量,并将值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 关键字正确地定义枚举、声明枚举类型的变量、使用点表示法访问枚举值,以及更新枚举变量。请遵循 Dart 命名约定:枚举名称以大写字母开头,枚举值使用小写字母。
亲手试试
import 'dart:io';
// TODO:在这里定义 TaskStatus 枚举
void main() {
// TODO:在这里编写你的代码
// 1. 创建变量 task1Status,并将其设为 TaskStatus.todo
// 2. 创建变量 task2Status,并将其设为 TaskStatus.inProgress
// 3. 创建变量 task3Status,并将其设为 TaskStatus.completed
// 4. 输出所有任务的初始状态
// 5. 按要求更新任务状态
// 6. 输出更新后的状态和最终状态
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程控制中的所有课
自己练习: Dart 在线编译器