我试图找出用户的当前主目录(玩具项目,学习Rust),这是我目前的代码:
let mut home_dir = if let Some(path) = env::home_dir() {
if let Some(path_str) = path.to_str() {
path_str.to_owned()
} else {
panic!("Found a home directory, but the encoding of the filename was invalid")
}
} else {
panic!("Could not find home directory for current user, specify prefix manually");
};
我来自一个严密管理语言的背景,所以也许这就是为什么这在我看来是一种反模式,但我试图理解我是否有更好的方法来做到这一点。
在Kotlin中,我会使用以下方式处理这种情况:
val homeDir = env.getHomeDir()?.toString() ?: throw RuntimeException(...)
?
宏在Rust中的工作方式要求我使用一个返回Result
的函数,我相信main()
没有,并且它不一定有意义无论如何。有什么指针吗?