我有以下 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 ×1