Rust

Collections

Vec<T>, String, HashMap, HashSet, iterator, collect, ownership với collections

20 câu hỏi phỏng vấn·
Junior
1

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.

2

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.

3

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.

4

Phương thức get() trả về gì trên một Vec<T>?

5

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

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í