struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
fn area(&self) -> u32 {
self.width * self.height
}
fn wider(&self, rect: &Rectangle) -> bool {
self.width > rect.width
}
}
fn main() {
let rect1 = Rectangle { width: 30, height: 50 };
let rect2 = Rectangle { width: 40, height: 20 };
println!("{}", rect1.wider(&rect2));
}
结构体方法采用点语法调用。
#[derive(Debug)]
struct Rectangle {
width: u32,
height: u32,
}
impl Rectangle {
fn create(width: u32, height: u32) -> Rectangle {
Rectangle { width, height }
}
}
fn main() {
let rect = Rectangle::create(30, 50);
println!("{:?}", rect);
}
结构体关联函数采用::调用。
关联函数类似于其他语言中的静态方法或类方法,它们提供了一种在结构体类型级别上操作和创建值的方式,而不需要具体的实例。
在 Rust 中,结构体的关联函数无法使用 static
关键字声明。 static
关键字用于声明静态变量,它用于在程序的整个生命周期内保存一个固定的值。