Rust中方法和关联函数的区别

1.定义方式不同

方法定义:

// self或&self
fn 方法名(&self, 参数)->返回值{
	// 方法体
}

关联函数定义:

fn 函数名(参数) 返回值{
	// 函数体
}

// 例
fn new(x:i32, y:i32) -> Rectangle{
	Rectangle {
		x: x,
		y: y,
	}
}
2.调用方式不同

方法调用,使用“.” ,例:

rect1.area()

关联函数调用,使用“::”,类似其他语言的静态方法,例:

let a = Rectangle::new(12, 24);
示例代码
struct Rectangle{
	width:u32,
	height:u32,
}

impl Rectangle{
	// new 关联函数
	fn new(x:i32, y:i32) -> Rectangle{
		Rectangle {
			x: x,
			y: y,
		}
	}

	//这个结构体拥有求面积的方法
	fn area(&self)->u32{
		return self.width * self.height;
	}

}

fn main() {
	let rect1 = Rectangle::new(12, 24);
	println!("the rectangle's area is {}",rect1.area());
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值