
impl 块中。self,它代表调用该方法的结构体实例。定义一个结构体的方法示例如下:
struct Rectangle {
width: u32,
height: u32,
}
// 定义 Rectangle 的方法
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
}impl 块中定义。它和方法的不同在于它不以 self 作为参数,因此它不是一个结构体的实例。:: 语法来调用关联函数。:: 语法用于关联函数和模块创建的命名空间。定义一个结构体的关联函数示例如下:
struct Rectangle {
width: u32,
height: u32,
}
// 定义 Rectangle 的方法
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
fn square(size: u32) -> Rectangle {
Rectangle { width: size, height: size }
}
}