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

Bạn hiểu thế nào về lifetimes trong Rust? Khi nào cần khai báo chúng tường minh?

senior

Trong môi trường đa nền tảng, bạn xử lý conditional compilation trong Rust như thế nào?

senior

Làm sao để benchmark code Rust và xác định bottleneck hiệu quả?

Bình luận

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

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