E0088
注意:编译器不再触发此错误码
提供了太多的生命周期参数( lifetime arguments )。错误代码示例:
fn f() {}
fn main() {
f::<'static>() // error: 生命周期参数数目错误:
// 期望 0,得到 1
}
请检查是否提供了正确数目的生命周期参数。例如:
fn f() {}
fn main() {
f() // ok!
}
还有很重要的一点是, Rust 编译器通常可以自己推测生命周期(译者注:这点请参阅 The book 中的生命周期省略规则)。例如:
struct Foo {
value: String
}
impl Foo {
// 可以像这样写:
fn get_value<'a>(&'a self) -> &'a str { &self.value }
// 但是这样编译器也可以很好地处理:
fn without_lifetime(&self) -> &str { &self.value }
}
fn main() {
let f = Foo { value: "hello".to_owned() };
println!("{}", f.get_value());
println!("{}", f.without_lifetime());
}
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。