Rust :lifetime 高级语法与 trait 关联绑定

时间:2020-12-23 20:00:36

一、生命周期关联:如下声明表示,'s >= 'c

struct Parser<'c, 's: 'c> {
context: &'c Context<'s>,
}

二、泛型生命周期绑定

struct Data<'a, T: 'a>(&'a T)

对于含有泛型引用成员的结构体,因为 T 本身可能是引用甚至是多层引用,为保证在 T 本身为引用的情况下 lifetime 不短于结构体的限制,必须同时指定 T 类型自身的 lifetime

三、如下 trait 定义方式,相当于为 trait 自身定义了 trait bound,即:实现 OutlinePrint 的实例,必须也同时实现 fmt::Display

trait OutlinePrint: fmt::Display {
fn outline_print(
&self) {
}
}

...