Table of contents
Open Table of contents
1. Khối impl (Implementation)
Để định nghĩa phương thức cho một Struct, chúng ta sử dụng khối impl.
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
// Đây là một phương thức (method)
fn area(&self) -> u32 {
self.width * self.height
}
}
self: Đại diện cho chính đối tượng đang gọi phương thức. Chúng ta thường dùng&selfđể mượn dữ liệu thay vì lấy quyền sở hữu.
2. Gọi phương thức
Dùng dấu chấm . để gọi phương thức từ một thực thể (instance) của Struct.
let rect = Rectangle { width: 30, height: 50 };
println!("Diện tích: {}", rect.area());
3. Associated Functions (Hàm liên kết)
Đây là những hàm nằm trong khối impl nhưng không nhận self làm tham số. Chúng tương đương với “Static Method” trong các ngôn ngữ khác, thường dùng làm hàm khởi tạo.
impl Rectangle {
// Hàm khởi tạo một hình vuông
fn square(size: u32) -> Rectangle {
Rectangle {
width: size,
height: size,
}
}
}
// Gọi bằng dấu hai chấm kép ::
let sq = Rectangle::square(10);
4. Nhiều khối impl
Trong Rust, một Struct có thể có nhiều khối impl riêng biệt. Điều này rất hữu ích khi bạn muốn phân tách logic hoặc tổ chức code sạch sẽ hơn.
Lời kết Bài 14
Method Syntax giúp bạn đóng gói dữ liệu và hành vi lại với nhau, làm cho mã nguồn trở nên trực quan và dễ bảo trì. Ở bài tiếp theo, chúng ta sẽ học về Traits - cách để định nghĩa các hành vi chung cho nhiều kiểu dữ liệu khác nhau.
Hẹn gặp lại các bạn!