Learn Rust Coding · 课时

特性与配置文件

条件编译

第 4 / 4 课13 个步骤

特性与配置文件 是 CoddyKit 上的免费 Learn Rust Coding 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn Rust Coding 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn Rust Coding 课程共包含 4 节课。

什么是功能

功能允许您在编译时启用或禁用 crate 的可选部分。它们让 crate 更灵活:调用方只需为实际使用的部分付出代价。

声明功能

在 [features] 表中定义功能。每个功能都可以启用其他功能或可选依赖。

[features]
default = ["json"]
json = []
fast_math = []

条件编译

使用 cfg 属性保护代码,使其仅在某个功能启用时才进行编译。

#[cfg(feature = "json")]
fn export() {
    println!("Exporting as JSON");
}

fn main() {
    #[cfg(feature = "json")]
    export();
}

启用功能

调用方可以在依赖声明中或命令行上启用功能。

[dependencies]
my_lib = { version = "1.0", features = ["fast_math"] }

默认功能

default 功能会自动启用。使用 default-features = false 将其禁用,以选择最小化构建。

[dependencies]
my_lib = { version = "1.0", default-features = false }

在 CLI 上使用功能

您还可以针对每条命令切换功能,而无需编辑清单。

cargo build --features fast_math
cargo run --no-default-features
cargo test --all-features

什么是配置文件

配置文件控制优化级别和调试信息等编译器设置。内置的两个配置文件是 dev(调试)和 release。

dev 配置文件

dev 配置文件由 cargo build 使用。它优先考虑快速编译和易于调试,而不是运行时速度。

[profile.dev]
opt-level = 0
debug = true

release 配置文件

release 配置文件(与 --release 一起使用)会启用优化,以生成运行速度更快的二进制文件。

[profile.release]
opt-level = 3
lto = true
strip = true

调整配置文件

您可以微调任何配置文件。例如,在开发构建中启用少量优化,以提高运行时速度,同时保持依赖项的快速编译。

[profile.dev]
opt-level = 1

[profile.dev.package."*"]
opt-level = 3

作为功能的可选依赖

可选依赖会隐式创建一个同名功能。启用该功能会引入此依赖,因此用户只在需要时才选择较重的 crate。

[dependencies]
serde = { version = "1.0", optional = true }

[features]
serialize = ["dep:serde"]

快速检查

哪个属性可以使代码块仅在某个功能启用时编译?

回顾

您学习了条件编译工具:

  • [features] 声明可选功能
  • #[cfg(feature = ...)] 根据功能控制代码
  • default-features = false 选择最小化构建
  • dev 和 release 等配置文件控制优化和调试设置
免费开始

用 AI 导师学习 Rust — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
39
课程
144

常见问题解答

「特性与配置文件」课时是免费的吗?

是的 — 「特性与配置文件」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn Rust Coding 课程的其余内容,请升级到 CoddyKit PRO。 Learn Rust Coding 课程共包含 4 节课。

「特性与配置文件」这节课中我会学到什么?

条件编译 你通过在浏览器中直接运行的动手代码来练习 Learn Rust Coding,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn Rust Coding 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn Rust Coding 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「特性与配置文件」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn Rust Coding 课中编写并运行代码吗?

能。每节 Learn Rust Coding 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Cargo 基础
  2. Cargo.toml
  3. 工作空间
  4. 特性与配置文件
← 返回 Learn Rust Coding