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

Sự khác biệt giữa iterinto_iter trong Rust là gì?

middle

Khi nào kiểu dữ liệu của tôi không thể được sao chép trong Rust?

senior

Làm thế nào để tạo một singleton toàn cục có thể thay đổi trong Rust?

Bình luận

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

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