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

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

Câu trả lời

Trong ngôn ngữ lập trình Rust, selfSelf đều liên quan đến việc định nghĩa và sử dụng phương thức trong các struct, enum, hoặc trait, nhưng chúng có ý nghĩa khác nhau:

  • self là một tham chiếu đến instance của struct, enum, hoặc trait mà phương thức đang được gọi. Nó thường được sử dụng trong định nghĩa phương thức để chỉ đến chính instance đó. Có ba dạng của selfself, &self, và &mut self, tương ứng với việc sở hữu, mượn không thay đổi, và mượn có thể thay đổi instance[1][2][3][7].

  • Self là một từ khóa đặc biệt chỉ đến kiểu dữ liệu của struct, enum, hoặc trait mà impl block đang được áp dụng cho. Khi sử dụng trong trait, Self đại diện cho bất kỳ kiểu dữ liệu nào sẽ triển khai trait đó. Điều này hữu ích trong việc viết code ít lặp lại hơn và dễ dàng bảo trì hơn khi cần thay đổi tên kiểu dữ liệu[1][2][3][4].

Ví dụ, trong một trait có thể có phương thức như sau:

trait State {
    fn request_review(self: Box<Self>) -> Box<dyn State>;
}

Ở đây, self: Box<Self> nghĩa là phương thức request_review nhận vào một Box chứa kiểu dữ liệu triển khai trait State và trả về một Box chứa một trait object State....

middle

middle

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

junior

Kiểu Option trong Rust là gì và tại sao nó lại hữu ích?

senior

Có thể sử dụng biến toàn cục trong Rust không?

expert

Cách triển khai một Bộ cấp phát tùy chỉnh trong Rust như thế nào?

Bình luận

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

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