【发布时间】:2016-04-16 19:59:19
【问题描述】:
我正在尝试在 Rust 中创建一个 Git 命令。我正在使用clap 参数解析器板条箱进行命令行处理。我希望我的命令采用一个可选参数来指示要在哪个目录中工作。如果该命令没有收到该选项,它将假定用户主目录。
我知道如果设置了std::env::home_dir 函数可以获取用户的主目录,但让我困惑的部分是如何正确使用match 运算符来获取路径的值。这是我一直在尝试的:
use std::env;
fn main() {
// Do some argument parsing stuff...
let some_dir = if matches.is_present("some_dir") {
matches.value_of("some_dir").unwrap()
} else {
match env::home_dir() {
Some(path) => path.to_str(),
None => panic!("Uh, oh!"),
}
};
// Do more things
当我尝试编译时收到一条错误消息,说path.to_str() 的寿命不够长。我知道从 to_str 返回的值在 match 范围的长度内有效,但是如何从必须调用另一个函数的匹配语句中返回值?
【问题讨论】:
标签: rust