rust基础第四篇:#[derive()]使用
#[derive()]是rust的一个属性,用于自动为结构体(struct)或枚举(enum)实现特定的接口(即trait),括号里面放接口名,如Debug、Clone、PartialEq、Eq、PartialOrd、Ord,可以放多个,中间用逗号隔开。
使用#[derive()]修饰结构体或枚举后,编译器可以为我们生成实现这些接口的代码。如
#[derive(PartialEq, Debug)]
struct Point {
x: f64,
y: f64,
}
在括号里面放Debug,结构体会自动实现Debug trait,这样就可以用println!("{:?}", point)打印结构体了。
在括号里面放Clone,结构体会自动实现Clone trait,这样就可以用point.clone()创建point的副本了。
在括号里面放PartialEq、Eq,结构体会自动实现PartialEq trait、Eq trait,这样就可以相等性比较结构体了。
在括号里面放PartialOrd、Ord,结构体会自动实现PartialOrd trait、Ord trait,这样就可以有序性比较结构体了。
