Option
Chúng ta đã thấy một số cách dùng Option<T>
. Kiểu dữ liệu này hoặc lưu trữ một giá trị kiểu T
hoặc không lưu trữ gì cả. Ví dụ, hàm String::find
trả về một Option<usize>
.
Speaker Notes
This slide should take about 10 minutes.
Option
được sử dụng rộng rãi ở nhiều nơi, không chỉ trong thư viện chuẩn.unwrap
sẽ trả về giá trị củaOption
hoặc panic.expect
hoạt động tương tự nhưng có thể truyền thêm một thông báo lỗi.- Chương trình có thể panic khi gặp phải giá trị
None
, nhưng bạn không thể “vô tình” quên kiểm traNone
. - Thông thường, ta có thể thoải mái sử dụng
unwrap
/expect
khi thử nghiệm một ý tưởng mới, nhưng code production thường xử lýNone
một cách an toàn hơn.
- Chương trình có thể panic khi gặp phải giá trị
Option<T>
được tối ưu để chiếm bằng bộ nhớ nhưT
trong đa số trường hợp.