我正在使用getopts,而我之前从这样的标志中获取了一个值:
let file = matches.opt_str("f").unwrap();
let file_path = Path::new(&file);
但是,我想通过使路径可选来更好地处理可能的错误。这是我的新代码:
let file = matches.opt_str("f");
let file_path = match file {
Some(f) => Some(Path::new(&f)),
None => None
}
但是,当我尝试编译此代码时,我收到错误'f' does not live long enough
。我完全难过了。
继承我代码的MCVE:
fn main() {
let foo = Some("success".to_string());
let string = match foo {
Some(s) => Some(Path::new(&s)),
None => None
};
}