0Pricing
Learn Rust Coding · レッスン

FeaturesとProfiles

条件付きコンパイル

「FeaturesとProfiles」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これは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

プロファイルの調整

どのプロファイルも細かく調整できます。たとえば dev ビルドで少しだけ最適化を有効にすると、依存関係のコンパイル時間を短く保ちながら、実行時の速度を向上できます。

[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 などのプロファイルで最適化とデバッグ設定を制御する

よくある質問

「FeaturesとProfiles」レッスンは無料ですか?

はい。「FeaturesとProfiles」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全4レッスンが含まれています。

「FeaturesとProfiles」で何を学びますか?

条件付きコンパイル ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「FeaturesとProfiles」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cargoの基礎
  2. Cargo.toml
  3. ワークスペース
  4. FeaturesとProfiles
← Learn Rust Codingに戻る