如果找到环境变量SOMEVALUE
,它应该绑定(bind)到k
:
let k = match env::var(SOMEVALUE) {
Ok(val) => {return val},
Err(e) => println!("could not find {}: {}", SOMEVALUE, e),
};
编译这段代码会出现以下错误
|
11 | Ok(val) => {return val},
| ^^^ expected (), found struct `std::string::String`
|
= note: expected type `()`
found type `std::string::String`
最佳答案
Victor 写的是正确的,但您可能想实际绑定(bind)一个值到 k
;在这种情况下,您应该将代码更改为:
let k = match env::var(SOMEVALUE) {
Ok(val) => val,
Err(e) => panic!("could not find {}: {}", SOMEVALUE, e),
};
等效地,您可以使用 Result::unwrap_or_else
:
let k = env::var(SOMEVALUE).unwrap_or_else(|e| {
panic!("could not find {}: {}", SOMEVALUE, e)
});
关于rust - 如何从 env::var 返回匹配的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44947920/