就如泛型类型能够被约束一样,生命周期(它们本身就是泛型)也可以使用约束。: 字符 的意义在这里稍微有些不同,不过 + 是相同的。注意下面的说明:
- T: 'a:在 T 中的所有引用都必须比生命周期 'a 活得更长。
- T: Trait + 'a:T 类型必须实现 Trait trait,并且在 T 中的所有引用 都必须比 'a 活得更长。
下面例子展示了上述语法的实际应用:
use std::fmt::Debug; // 用于约束的 trait。
#[derive(Debug)]
struct Ref<'a, T: 'a>(&</