如何解决如何将 String 变量插入全局可变 HashMap使用 lazy_static 和 Mutex而不会导致“寿命不够长”问题?
我正在使用 Rust,为了方便起见,我想使用全局可变 HashMap
。但是,虽然可以使用 HashMap
和 lazy_static
定义全局可变 Mutex
,但我的函数中定义的 String
变量很难具有相同的寿命全球时间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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。