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());
}

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/rust-rcei-2020/...

译文地址:https://learnku.com/docs/rust-rcei-2020/...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 查看所有版本


暂无话题~