
Collections
Vec<T>, String, HashMap, HashSet, iterator, collect, ownership với collections
1Phương thức nào cho phép thêm một phần tử vào cuối một Vec<T>?
Phương thức nào cho phép thêm một phần tử vào cuối một Vec<T>?
Câu trả lời
Phương thức push() thêm một phần tử vào cuối vector, làm tăng kích thước của nó lên 1. Thao tác này có độ phức tạp khấu hao O(1) vì vector có thể cần cấp phát lại bộ nhớ nếu vượt quá dung lượng. Để thêm nhiều phần tử, có thể dùng extend() hoặc append() tùy theo nhu cầu.
2Sự khác biệt chính giữa String và &str trong Rust là gì?
Sự khác biệt chính giữa String và &str trong Rust là gì?
Câu trả lời
String là một kiểu sở hữu (owned) được lưu trên heap, có thể thay đổi và thay đổi kích thước. &str là một tham chiếu bất biến đến một chuỗi UTF-8, thường được gọi là 'string slice'. String sở hữu dữ liệu của nó và có thể được sửa đổi, trong khi &str mượn dữ liệu hiện có mà không sở hữu nó. Sự phân biệt này là nền tảng cho việc quản lý bộ nhớ trong Rust.
3Làm thế nào để tạo một Vec<i32> rỗng mới trong Rust?
Làm thế nào để tạo một Vec<i32> rỗng mới trong Rust?
Câu trả lời
Vec::new() tạo một vector rỗng mà không cấp phát ban đầu. Macro vec![] cũng có thể tạo một vector rỗng, nhưng Vec::new() là phương thức tường minh chuẩn. Kiểu generic có thể được suy luận hoặc chỉ định rõ ràng bằng cú pháp turbofish Vec::<i32>::new() hoặc bằng chú thích kiểu.
Phương thức get() trả về gì trên một Vec<T>?
Nên dùng cấu trúc dữ liệu nào để liên kết khóa với giá trị với truy cập trung bình O(1)?
+17 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
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í