
Pattern Matching
Biểu thức match, if let, while let, destructuring, guards, @ bindings, tính đầy đủ (exhaustiveness)
1Cú pháp đúng cho một biểu thức match cơ bản trong Rust là gì?
Cú pháp đúng cho một biểu thức match cơ bản trong Rust là gì?
Câu trả lời
Biểu thức match trong Rust dùng từ khóa match theo sau là giá trị cần phân tích, rồi đến dấu ngoặc nhọn chứa các nhánh (pattern) khác nhau ngăn cách bởi dấu phẩy. Mỗi nhánh dùng pattern theo sau là => và đoạn mã cần thực thi. Cú pháp này cho phép trình biên dịch kiểm tra rằng tất cả các trường hợp có thể đều được xử lý.
2Nên dùng pattern nào để bắt tất cả các giá trị còn lại trong một match?
Nên dùng pattern nào để bắt tất cả các giá trị còn lại trong một match?
Câu trả lời
Pattern _ (underscore) là pattern catch-all trong Rust. Nó khớp với bất kỳ giá trị nào mà không gán nó vào một biến. Ngoài ra, dùng tên biến (như other hoặc n) sẽ bắt giá trị đó. _ được ưu tiên khi giá trị không được sử dụng vì nó thể hiện rõ ý định.
3if let hoạt động như thế nào so với match?
if let hoạt động như thế nào so với match?
Câu trả lời
if let là cú pháp viết tắt cho một match chỉ xử lý một pattern và bỏ qua các pattern còn lại. Thay vì viết một match đầy đủ với arm catch-all _, if let cho phép trích xuất một giá trị một cách gọn gàng khi chỉ một trường hợp cụ thể là quan trọng. Nó đặc biệt hữu ích với Option và Result.
Exhaustiveness là gì trong ngữ cảnh pattern matching của Rust?
Làm thế nào để phân rã một tuple trong pattern match?
+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
Xử lý lỗi
Collections
Modules & Packages
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
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í