我正在使用 Rust,并且HashMap
为了方便起见,我想使用全局变量。然而,虽然可以HashMap
使用lazy_static
and定义一个全局的、可变的Mutex
,但在我的函数中定义的变量很难String
具有与 gloabl 相同的生命周期HashMap
。
我试过直接插入 &str 并且效果很好。有没有办法将字符串转换为纯值?
lazy_static! {
static ref USER_TOKEN_HASHMAP: Mutex<HashMap<&'static str, &'static str>> = {
let mut m = HashMap::new();
Mutex::new(m)
};
}
fn func() {
let mut _map = USER_TOKEN_HASHMAP.lock().unwrap();
let user_email = String::from("aaa");
let user_password = String::from("bbb");
_map.insert(user_email.as_str(), user_password.as_str());
}
错误信息:
`user_email` does not live long enough
values in a scope are dropped in the opposite order they are defined
rustc(E0597)