
Xử lý lỗi
Result<T, E>, Option<T>, unwrap, expect, ?, lỗi tùy chỉnh, lan truyền lỗi
1Kiểu Rust nào biểu diễn một giá trị có thể có hoặc không có?
Kiểu Rust nào biểu diễn một giá trị có thể có hoặc không có?
Câu trả lời
Option<T> là một enum có thể là Some(T) chứa một giá trị, hoặc None biểu thị sự vắng mặt của giá trị. Kiểu này thay thế các giá trị null có trong các ngôn ngữ khác và buộc lập trình viên phải xử lý rõ ràng trường hợp giá trị vắng mặt, từ đó tránh được các lỗi con trỏ null lúc chạy.
2Kiểu Rust nào biểu diễn một thao tác có thể thành công hoặc thất bại với một lỗi?
Kiểu Rust nào biểu diễn một thao tác có thể thành công hoặc thất bại với một lỗi?
Câu trả lời
Result<T, E> là một enum với hai biến thể: Ok(T) cho trường hợp thành công, chứa giá trị trả về, và Err(E) cho trường hợp thất bại, chứa lỗi. Kiểu này buộc phải xử lý lỗi một cách rõ ràng thay vì dùng exception, giúp mã dễ dự đoán hơn và lỗi dễ thấy hơn.
3Phương thức unwrap() làm gì trên một Option<T>?
Phương thức unwrap() làm gì trên một Option<T>?
Câu trả lời
unwrap() trả về giá trị chứa trong Some(T) nếu nó tồn tại. Nếu Option là None, chương trình sẽ panic (panic!) và dừng ngay lập tức. Phương thức này tiện cho việc dựng nguyên mẫu nhưng nên tránh trong môi trường production vì nó không xử lý trường hợp None một cách nhẹ nhàng.
Sự khác biệt giữa unwrap() và expect() là gì?
Toán tử ? làm gì trong một hàm trả về Result<T, E>?
+15 câu hỏi phỏng vấn
Các chủ đề phỏng vấn Rust khác
Cơ bản về Rust
Ownership & Borrowing
Structs & Enums
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
Macro
Serde & Serialization
Unsafe Rust
Trait nâng cao
Lifetime Nâng Cao
Type System
Tokio & Async I/O
Tối ưu hóa Hiệu suất
Memory Management
Web Frameworks
Database Integration
Design Pattern trong Rust
Nắm vững Rust cho lần phỏng vấn tiếp theo
Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.
Bắt đầu miễn phí