0Pricing
Learn Rust Coding · Урок

Возможности и профили

Условная компиляция

«Возможности и профили» — бесплатный урок Learn Rust Coding на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn Rust Coding, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn Rust Coding содержит 4 уроков всего.

Что такое возможности?

Возможности позволяют во время компиляции включать или отключать необязательные части пакета. Они делают пакеты гибкими: вызывающий код платит только за используемые возможности.

Объявление возможностей

Определяйте возможности в таблице [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

Необязательные зависимости как возможности

Необязательная зависимость неявно создаёт возможность с таким же именем. Включение возможности подключает зависимость, поэтому пользователи выбирают более тяжёлые пакеты только при необходимости.

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

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

Быстрая проверка

Какой атрибут компилирует блок кода только при включённой возможности?

Итоги

Вы изучили средства условной компиляции:

  • [features] объявляет необязательную функциональность
  • #[cfg(feature = ...)] ограничивает код возможностью
  • default-features = false выбирает минимальные сборки
  • Профили, такие как dev и release, управляют оптимизацией и настройками отладки

Часто задаваемые вопросы

Урок «Возможности и профили» бесплатный?

Да — полный текст урока «Возможности и профили» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn Rust Coding, подпишись на CoddyKit PRO. Курс Learn Rust Coding содержит 4 уроков всего.

Чему я научусь в уроке «Возможности и профили»?

Условная компиляция Ты практикуешь Learn Rust Coding с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn Rust Coding?

Предыдущий опыт не требуется. Learn Rust Coding на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Возможности и профили»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn Rust Coding?

Да. Каждый урок Learn Rust Coding включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы Cargo
  2. Cargo.toml
  3. Рабочие пространства
  4. Возможности и профили
← Назад к Learn Rust Coding