Rust编程:生命周期、继承、特征与泛型的深度解析
1. 生命周期注解与省略规则
1.1 正确的生命周期注解示例
为了解决生命周期相关问题,下面是带有正确生命周期注解的 append 函数示例:
fn append <'a, 'b> (s: &'a mut String, n: &'b str) -> &'a str {
s.push_str (n);
s
}
在这个函数中,返回值和 s 参数具有相同的生命周期注解,因为它们是相关联的。而 n 参数有不同的生命周期注解,因为函数的返回值与它无关。这样,主函数可以在不先丢弃 title 的情况下丢弃 s2 。
1.2 生命周期省略规则
编写生命周期注解会使代码可读性降低,不过很多时候生命周期注解遵循一定的模板。因此,Rust 开发者定义了三条生命周期省略规则,允许开发者省略一些引用的注解:
1. 函数中所有未指定(省略)生命周期的参数都会有自己的生命周期。
2. 如果函数的参数恰好有一个生命周期(无论是否省略),这个生命周期会被分配给返回值中所有省略的生命周期。
3. 如果函数的参数有多个生命周期(无论是否省略),并且其中一个参数是 &self 或 &mut self ,
超级会员免费看
订阅专栏 解锁全文
109

被折叠的 条评论
为什么被折叠?



