Menu
CoddyTech

在变量中使用枚举

本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 60 课,共 65 课。

现在你已经知道如何定义枚举了,接下来学习如何在程序中实际使用它们。创建枚举后,你可以声明该枚举类型的变量,并为它们赋予特定的值。

要声明一个枚举类型的变量,你需要先写枚举名称,再写变量名称,这和其他数据类型一样:

Weather todayWeather = Weather.sunny;

注意,你可以使用点表示法访问枚举值:Weather.sunny。这会告诉 Dart,你要获取 Weather 枚举中的 sunny 值。

你可以将变量的值改为任何其他有效的枚举值:

todayWeather = Weather.rainy;
todayWeather = Weather.cloudy;

使用枚举变量的好处是,Dart 会确保你只能赋予有效的枚举值。你不能意外地将 "stormy" 或其他无效值赋给 Weather 变量,这样可以避免常见的编程错误,让代码更加可靠。

challenge icon

挑战

简单

创建一个程序,使用枚举和变量管理一个简单的任务跟踪系统。你需要:

  1. 定义一个名为 TaskStatus 的枚举,包含以下值:todo、inProgress、testing、completed 和 cancelled
  2. 创建一个名为 task1Status、类型为 TaskStatus 的变量,并将值 TaskStatus.todo 赋给它
  3. 创建一个名为 task2Status、类型为 TaskStatus 的变量,并将值 TaskStatus.inProgress 赋给它
  4. 创建一个名为 task3Status、类型为 TaskStatus 的变量,并将值 TaskStatus.completed 赋给它
  5. 按以下精确格式打印所有任务的初始状态:Task 1 status: TaskStatus.todo
  6. 按以下精确格式打印任务 2 的初始状态:Task 2 status: TaskStatus.inProgress
  7. 按以下精确格式打印任务 3 的初始状态:Task 3 status: TaskStatus.completed
  8. 将 task1Status 更新为 TaskStatus.inProgress
  9. 将 task2Status 更新为 TaskStatus.testing
  10. 按以下精确格式打印任务 1 的更新后状态:Updated Task 1 status: TaskStatus.inProgress
  11. 按以下精确格式打印任务 2 的更新后状态:Updated Task 2 status: TaskStatus.testing
  12. 按以下精确格式打印任务 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. 输出更新后的状态和最终状态
  
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程控制中的所有课

自己练习: Dart 在线编译器