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

senior

Bạn làm thế nào để giữ backward compatibility khi phát hành crate mới trong Rust?

senior

Rust hỗ trợ const generics không? Khi nào nên dùng const generic thay vì macro?

senior

Cung cấp một cách sử dụng không đúng hàm này với các chú thích lifetime rõ ràng trong Rust.

Bình luận

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

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