Rust结构体方法和关联函数

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 关键字用于声明静态变量,它用于在程序的整个生命周期内保存一个固定的值。