小编hao*_*oel的帖子

如何在 Rust Closure 中返回引用

我有以下 Rust 代码无法编译。

struct Person {
    name : String,
    age : u8,
}


fn main() {
    let p = Person{ name: "Nobody".to_string(), age : 24};

    let age = |p : &Person| p.age;
    let name = |p : &Person | &p.name;

    println! ("name={}, age={}" , name(&p), age(&p));
}
Run Code Online (Sandbox Code Playgroud)

并且编译器给出了以下错误消息。

   Compiling playground v0.0.1 (/playground)
error[E0495]: cannot infer an appropriate lifetime for borrow expression due to conflicting requirements
  --> src/main.rs:11:31
   |
11 |     let name = |p : &Person | &p.name;
   |                               ^^^^^^^ …
Run Code Online (Sandbox Code Playgroud)

rust

4
推荐指数
1
解决办法
1245
查看次数

标签 统计

rust ×1