Câu hỏi phỏng vấn Rust
Câu hỏi

Điều kiện cụ thể để một closure thực thi...

Câu trả lời

Các trait Fn, FnMut, và FnOnce trong Rust đại diện cho các tính chất ngày càng hạn chế hơn về closures/functions, được chỉ ra bởi chữ ký của phương thức call của chúng và đặc biệt là loại của self:

  • FnOnce(self): là các hàm có thể được gọi một lần.
  • FnMut(&mut self): là các hàm có thể được gọi nếu chúng có quyền truy cập &mut đến môi trường của chúng.
  • Fn(&self): là các hàm có thể được gọi nếu chúng chỉ có quyền truy cập & đến môi trường của chúng.

Một closure sẽ tự động thực thi càng nhiều trait này nếu có thể. Nếu một closure chỉ thực thi FnOnce, nó chỉ có thể được gọi một lần. FnMut cho phép chúng được gọi nhiều lần (nếu có quyền truy cập không bị chia sẻ đến đối tượng hàm). Fn cho phép chúng được gọi mọi nơi. Những hạn chế này trực tiếp theo...

expert

expert

Gợi ý câu hỏi phỏng vấn

middle

Định nghĩa một extension trait cho phép định dạng bất kỳ iterable nào của các kiểu có thể hiển thị trong một định dạng tùy chỉnh trong Rust

middle

Có thể tạo một hàm Rust với các tham số mặc định không?

junior

Lifetime trong Rust là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào