Rust

Iterators & Closures

Iterator trait, iterator adapters (map, filter, fold), cú pháp closure, move closures, Fn traits

22 câu hỏi phỏng vấn·
Mid-Level
1

Một kiểu phải triển khai trait nào để có thể được sử dụng trong vòng lặp for trong Rust?

Câu trả lời

Trait IntoIterator cho phép một kiểu được chuyển đổi thành iterator. Vòng lặp for tự động gọi into_iter() trên biểu thức. Các kiểu như Vec, array và range triển khai trait này theo mặc định, cho phép duyệt chúng trực tiếp bằng for.

2

Phương thức nào của trait Iterator bắt buộc phải được triển khai?

Câu trả lời

Phương thức next() là phương thức duy nhất bắt buộc của trait Iterator. Nó trả về Option<Self::Item>, hoặc Some(item) nếu còn phần tử, hoặc None khi quá trình lặp kết thúc. Tất cả các phương thức khác như map, filter hay collect đều có triển khai mặc định dựa trên next().

3

Sự khác biệt giữa iter(), iter_mut() và into_iter() trên Vec<T> là gì?

Câu trả lời

iter() trả về một iterator trên các tham chiếu bất biến (&T), iter_mut() trên các tham chiếu khả biến (&mut T), và into_iter() tiêu thụ Vec và trả về các phần tử theo giá trị (T). Lựa chọn phụ thuộc vào việc bạn muốn đọc, sửa đổi hay sở hữu các phần tử.

4

Iterator lazy trong Rust là gì và tại sao nó quan trọng?

5

Cú pháp đúng để định nghĩa một closure nhận hai tham số i32 và trả về tổng của chúng là gì?

+19 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í