trait 定义
trait SomeOpts { fn pair(&self) -> i32; fn falf(&self) -> i32; fn zero(&self) -> i32 { 0 } } impl SomeOpts for i32 { fn pair(&self) -> i32 { self * 2 } fn falf(&self) -> i32 { self / 2 } } fn main() { let a: i32 = 3; println!("pair of a: {}", a.pair()); println!("falf of a: {}", a.falf()); }
这里没有定义 struct
,就是为了体现 trait
服务于类型,而不是简单的类(对象)。
SomeOpts
内定义了一系列的方法,其中由一个含有默认实现。Rust 规定为某个类型添加 trait
时,需要将其内的所有方法都实现,未实现的方法使用其默认方法。