
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!
Leave a comment