感觉自己在开历史的倒车 没有理解 rust的相关概念 拿以往的经验生套 需要闭关 多看
if let Some(td) = env::home_dir() {
dir = td;
dir.push(".config");
} else {
if let Ok(td1) = env::current_dir() {
dir = td1;
dir.push(".config");
} else {
dir = PathBuf::new();
}
};
fn get_home_dir() -> String {
let dir: PathBuf = match env::home_dir() {
Some(path) => PathBuf::from(path),
None => PathBuf::from(""),
};
dir.to_str().unwrap().to_string()
}
fn get_config_dir() -> String {
let dir: PathBuf = match env::home_dir() {
Some(path) => PathBuf::from(path),
None => PathBuf::from(""),
};
let mut s=dir.to_str().unwrap().to_string();
if s.len() > 0 {
s.push_str(".config")
}
s
}
1
共 3 条评论, 1 页
评论区
写评论上面那个写错的passwd是从https://doc.rust-lang.org/std/path/struct.Path.html复制代码的时候忘记改掉的…… 对以下内容的回复:
你的第一段代码完全可以写得简单些 (上面是我把你的代码片段改成可以应用的版本,不得已加了一个mut) (下面的版本(理应)是rust风格的版本,可以避免使用mut记号,以增强程序的稳健性) (BTW,好像rust已经准备弃用env::home_dir了,或许应该换一个新函数)
多写写,迎接新思维。