学习rust_day10

零成本抽象(zero-cost abstractions)

  • 迭代器虽然是高级抽象,但在编译后,它们被转换成了与你手写低级代码几乎相同的代码。
  • 迭代器是Rust的零成本抽象之一,这意味着使用这种抽象不会引入任何额外的运行时开销。

结论:在Rust中可放心使用迭代器和闭包等高级特性,它们提供了更高层次的代码抽象,同时保持着极高的运行时性能,不会带来性能损失。


自定义构建与发布配置

Cargo提供两个主要的配置文件:

  • dev: 运行cargo build时使用,适用于开发,默认优化调试体验
  • release: 运行cargo build-release时使用,适用于发布,默认优化性能

例:

Cargo.toml

1
2
3
4
5
6
7
8
9
10
11
12
[package]
name = "trysomething"
version = "0.1.0"
edition = "2024"

[dependencies]

[profile.dev]
opt-level = 0 #表示优化级别,0为最少优化

[profile.release]
opt-level = 3

Cargo在线选项文档: https://doc.rust-lang.org/cargo/reference/profiles.html


在crates.io上发布crate

文档注释,使用 “///“,支持Markdown,会生成html网页。

使用命令生成文档:

1
cargo doc [--open]

文档位置:target/doc/

常用的Sections

  • Examples
  • Panics
  • Errors
  • Safety

cargo test 会触发文档中的测试代码

“//!” 为整个crate添加说明,而不是只为了单个函数添加说明。


使用pub use导出方便的公共API

1
pub use self::modname::name;

在此之后,用户想使用模块内部的资源只需要 项目名::资源 。

发布前准备工作:

提交文件

1
2
git add --all
git commit --all -m update

设置开源协议和信息

Cargo.toml:

1
2
3
4
5
6
7
8
[package]
name = "trysomething"
version = "0.1.0"
edition = "2024"
license = "MIT"
description = "OvO"

[dependencies]

发布:

1
cargo publish

注意,你的代码发布后将无法删除!!!

除非:

发布未满 72 小时 新发布的包可以在 3 天内删除
低下载量 + 单所有者 + 无依赖 每月下载量 < 500 次,且只有一个所有者,且没有其他 crate 依赖它

废弃项目:

1
cargo yank --vers 版本号

撤回废弃操作:

1
cargo yank --vers 版本号 --undo

学习rust_day10
https://zlsf-zl.github.io/2026/03/20/学习rust-day10/
作者
ZLSF
发布于
2026年3月20日
许可协议