Rust结构体方法和关联函数

本文介绍了Rust中的结构体`Rectangle`及其方法,如`area`和`wider`,展示了如何通过点语法和关联函数进行调用。关联函数提供了在类型级别操作的功能,与静态方法和类方法类似,但Rust不支持使用`static`关键字声明关联函数。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值