Result

Result hoạt động tương tự như Option, nhưng được sử dụng để biểu diễn kết quả thành công hoặc thất bại của một tác vụ. Tương tự như Res trong phần thực hành về biểu thức, Result cũng có hai biến thể khác nhau cho mỗi trường hợp thành công và thất bại, nhưng được tổng quát hóa: Result<T, E> trong đó T được sử dụng trong trường hợp OkE xuất hiện trong trường hợp Err.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • Tương tự với Option, giá trị trả về trong trường hợp thành công được đặt bên trong Result, buộc người dùng phải trích xuất giá trị một cách rõ ràng, đảm bảo mọi lỗi đều được kiểm tra. Trong trường hợp mà lỗi chắc chắn không thể xảy ra, unwrap() hoặc expect() có thể được gọi, bày tỏ rõ ràng ý định của người viết là lỗi không thể xảy ra.
  • Khuyến khích học viên đọc tài liệu về Result. Không nhất thiết phải đọc trong khóa học, nhưng đáng đề cập đến. Tài liệu này chứa nhiều hàm khá tiện lợi, hỗ trợ việc lập trình theo functional-style programming.
  • Result là kiểu dữ liệu chuẩn để xử lý lỗi như chúng ta sẽ thấy trong ngày 4.