Menu
CoddyTech

Dùng enum với biến

Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 60 trên 65.

Bây giờ bạn đã biết cách định nghĩa enum, hãy cùng tìm hiểu cách sử dụng chúng trong chương trình. Sau khi tạo enum, bạn có thể khai báo các biến thuộc kiểu enum đó và gán giá trị cụ thể cho chúng.

Để khai báo một biến có kiểu enum, bạn ghi tên enum rồi đến tên biến, giống như với mọi kiểu dữ liệu khác:

Weather todayWeather = Weather.sunny;

Hãy chú ý cách bạn truy cập các giá trị enum bằng ký hiệu dấu chấm: Weather.sunny. Cách này cho Dart biết bạn muốn lấy giá trị sunny từ enum Weather.

Bạn có thể đổi giá trị của biến thành bất kỳ giá trị enum hợp lệ nào khác:

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

Điểm hay của việc dùng biến enum là Dart đảm bảo bạn chỉ có thể gán các giá trị enum hợp lệ. Bạn không thể vô tình gán "stormy" hay bất kỳ giá trị không hợp lệ nào khác cho biến Weather, nhờ đó tránh được các lỗi lập trình thường gặp và giúp code đáng tin cậy hơn.

challenge icon

Thử thách

Dễ

Tạo một chương trình quản lý hệ thống theo dõi công việc đơn giản bằng cách sử dụng enum và biến. Nhiệm vụ của bạn là:

  1. Định nghĩa một enum có tên TaskStatus với các giá trị sau: todo, inProgress, testing, completed và cancelled
  2. Tạo một biến có tên task1Status thuộc kiểu TaskStatus và gán cho biến giá trị TaskStatus.todo
  3. Tạo một biến có tên task2Status thuộc kiểu TaskStatus và gán cho biến giá trị TaskStatus.inProgress
  4. Tạo một biến có tên task3Status thuộc kiểu TaskStatus và gán cho biến giá trị TaskStatus.completed
  5. In ra trạng thái ban đầu của tất cả công việc theo đúng định dạng: Task 1 status: TaskStatus.todo
  6. In ra trạng thái ban đầu của công việc 2 theo đúng định dạng: Task 2 status: TaskStatus.inProgress
  7. In ra trạng thái ban đầu của công việc 3 theo đúng định dạng: Task 3 status: TaskStatus.completed
  8. Cập nhật task1Status thành TaskStatus.inProgress
  9. Cập nhật task2Status thành TaskStatus.testing
  10. In ra trạng thái đã cập nhật của công việc 1 theo đúng định dạng: Updated Task 1 status: TaskStatus.inProgress
  11. In ra trạng thái đã cập nhật của công việc 2 theo đúng định dạng: Updated Task 2 status: TaskStatus.testing
  12. In ra trạng thái cuối cùng của công việc 3 theo đúng định dạng: Final Task 3 status: TaskStatus.completed

Chương trình của bạn cần thể hiện cách định nghĩa enum đúng cách bằng từ khóa enum, khai báo biến bằng kiểu enum, truy cập giá trị enum bằng ký hiệu dấu chấm và cập nhật biến enum. Hãy tuân theo quy ước đặt tên của Dart: tên enum bắt đầu bằng chữ cái viết hoa, còn các giá trị enum viết thường.

Tự làm thử

import 'dart:io';

// TODO: Định nghĩa enum TaskStatus tại đây

void main() {
  // TODO: Viết code tại đây
  // 1. Tạo biến task1Status và gán giá trị TaskStatus.todo
  // 2. Tạo biến task2Status và gán giá trị TaskStatus.inProgress  
  // 3. Tạo biến task3Status và gán giá trị TaskStatus.completed
  // 4. In ra trạng thái ban đầu của tất cả tác vụ
  // 5. Cập nhật trạng thái các tác vụ theo yêu cầu
  // 6. In ra trạng thái sau khi cập nhật và trạng thái cuối cùng
  
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch Dart online