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.
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à:
- Định nghĩa một enum có tên
TaskStatusvới các giá trị sau:todo,inProgress,testing,completedvàcancelled - Tạo một biến có tên
task1Statusthuộc kiểuTaskStatusvà gán cho biến giá trịTaskStatus.todo - Tạo một biến có tên
task2Statusthuộc kiểuTaskStatusvà gán cho biến giá trịTaskStatus.inProgress - Tạo một biến có tên
task3Statusthuộc kiểuTaskStatusvà gán cho biến giá trịTaskStatus.completed - 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 - 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 - 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 - Cập nhật
task1StatusthànhTaskStatus.inProgress - Cập nhật
task2StatusthànhTaskStatus.testing - 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 - 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 - 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
}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
1Thao tác nâng cao với danh sách
Thuộc tính danh sách: đầu và cuốiTrạng thái danh sách: isEmpty và isNotEmpĐảo ngược danh sáchThêm vào danh sách: insertXóa khỏi danh sách: removeWhereTìm trong danh sách: indexOfSắp xếp danh sáchXáo trộn danh sáchÔn tập: trình sắp xếp danh sách4Thao tác nâng cao với Map
Duyệt qua MapKiểm tra khóa và giá trịCác thuộc tính của Map: khóa và giá trịThêm có điều kiện: putIfAbsentXóa mục khỏi MapMap lồng nhauÔn tập: Cập nhật kho hàng2Thao tác hàm trên danh sách
Biến đổi bằng 'map'Lọc bằng 'where'Dùng '.toList()'Kiểm tra điều kiện bằng 'any'Điều kiện với 'every'Tìm phần tử bằng 'firstWhere'Ôn tập: lọc dữ liệu5Dự án: Tính tiền giỏ hàng
Thiết lập dự ánThêm mặt hàng vào giỏ8Dự án: Trình phân tích văn bản đơn giản
Tổng quan và thiết lập dự ánĐếm ký tự3Tập hợp
Tập hợp là gì?Tạo tập hợpThêm và xóa phần tử khỏi tập hợpKiểm tra phần tử trong tập hợpChuyển danh sách thành tập hợpPhép hợp của các tập hợpPhép giao của các tập hợpPhép hiệu của các tập hợpÔn tập: danh sách khách mời không trùng lặp6Xử lý lỗi cơ bản
Ngoại lệ là gì?Khối lệnh 'try-catch'Bắt ngoại lệ bằng 'on'Khối lệnh 'finally'Ném ngoại lệÔn tập: phép chia an toàn9Kiểu liệt kê (enum)
Enum là gì?Định nghĩa enum đơn giảnDùng enum với biếnEnum trong câu lệnh switchÔn tập: Đèn giao thôngTự luyện tập: Trình biên dịch Dart online