学习rust_day10
零成本抽象(zero-cost abstractions)
- 迭代器虽然是高级抽象,但在编译后,它们被转换成了与你手写低级代码几乎相同的代码。
- 迭代器是Rust的零成本抽象之一,这意味着使用这种抽象不会引入任何额外的运行时开销。
结论:在Rust中可放心使用迭代器和闭包等高级特性,它们提供了更高层次的代码抽象,同时保持着极高的运行时性能,不会带来性能损失。
自定义构建与发布配置
Cargo提供两个主要的配置文件:
- dev: 运行cargo build时使用,适用于开发,默认优化调试体验
- release: 运行cargo build-release时使用,适用于发布,默认优化性能
例:
Cargo.toml
1 | |
Cargo在线选项文档: https://doc.rust-lang.org/cargo/reference/profiles.html
在crates.io上发布crate
文档注释,使用 “///“,支持Markdown,会生成html网页。
使用命令生成文档:
1 | |
文档位置:target/doc/
常用的Sections
- Examples
- Panics
- Errors
- Safety
cargo test 会触发文档中的测试代码
“//!” 为整个crate添加说明,而不是只为了单个函数添加说明。
使用pub use导出方便的公共API
1 | |
在此之后,用户想使用模块内部的资源只需要 项目名::资源 。
发布前准备工作:
提交文件
1 | |
设置开源协议和信息
Cargo.toml:
1 | |
发布:
1 | |
注意,你的代码发布后将无法删除!!!
除非:
| 发布未满 72 小时 | 新发布的包可以在 3 天内删除 |
|---|---|
| 低下载量 + 单所有者 + 无依赖 | 每月下载量 < 500 次,且只有一个所有者,且没有其他 crate 依赖它 |
废弃项目:
1 | |
撤回废弃操作:
1 | |
学习rust_day10
https://zlsf-zl.github.io/2026/03/20/学习rust-day10/