变量的寿命不够长:匹配选项类型

时间:2015-09-09 18:34:46

标签: rust lifetime

我正在使用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
    };
}

0 个答案:

没有答案