我正在尝试制作环境变量的只读映射。
fn os_env_hashmap() -> HashMap<&'static str, &'static str> {
let mut map = HashMap::new();
use std::env;
for (key,val) in env::vars_os() {
let k = key.to_str();
if k.is_none() { continue }
let v = val.to_str();
if v.is_none() { continue }
k.unwrap();
//map.insert( k.unwrap(), v.unwrap() );
}
return map;
}
Run Code Online (Sandbox Code Playgroud)
如果没有关于 key、val、k 和 v 是本地的编译器错误,似乎无法取消对底部附近的“插入”行的注释。
我也许可以通过使用 String 而不是 str 来修复编译器错误,但 str 似乎非常适合只读结果。
随意建议一个更惯用的方法来做到这一点。
rust ×1