2025年2月26日大约 4 分钟
Rust具有一些让人眼前一亮的特点:无GC也不需手动管理内存、高性能、安全性强等等。但其诸多优点背后的代价,就是学习曲线相当陡峭。
Rust的困难,不在于语言特性,而在于:
- 具体实践中如何运用学到的技巧
- 遇到了坑时(生命周期、借用错误,自引用等)如何迅速、正确的解决
- 大量的标准库API的熟练使用,这是保证开发效率的关键
错误处理相关
将Option类型转换为Result类型
使用ok_or方法:
fn foo(abs_path: &str) -> Result<String, String> {
let path = PathBuf::from(abs_path);
let relative = path.file_name()
.ok_or(format!("Failed to get relative_name for `{}`", abs_path))?;
let res = relative.to_str().unwrap();
Ok(res.to_owned())
}
2024年12月11日大约 10 分钟
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1010
题目大意
小狗要逃离一个的长方形迷宫,迷宫出口的门仅在第 秒时开一瞬间(不到1秒)。因此,小狗必须恰好在第 秒到达门口才能逃离。 每一秒,它可以向上下左右任意移动一格,且所有格子至多走一次。
2023年11月13日大约 3 分钟