我正在尝试创建一个包含两个哈希映射的结构 - 一个具有一些值,另一个引用另一个hashmap的元素 . 这是我的代码 .
use std::collections::HashMap;
struct Foo;
struct Bar(&'s Foo);
struct MyStruct {
first : HashMap,
second : HashMap>,
}
impl MyStruct {
fn new() -> MyStruct {
let mut result = MyStruct {
first : HashMap::new(),
second : HashMap::new(),
};
match result.first.get("") {
Some(t) => { result.second.insert("", Bar(t)); },
None => {},
}
result
}
}
fn main() {
}
并且此代码无法编译并出现以下错误:
错误:result.first不够长寿
我认为这个问题与生命有关,但我无法清楚地解释什么是错的 .
任何人都可以解释发生了什么以及如何解决这个错误?
附: struct Foo 和 Bar 来自库,所以我无法修改这些结构 .