見出し画像

Rust cfgとは 使い方と注意点について

今回はRustのcfgについて説明していきます。

cfgとは

Rustのcfgはコンパイル時の条件付きコンパイルを管理するために使われます。

主に特定のプラットフォームや設定に基づいてコードを含めたり除外したりするために使われます。


cfgの使い方

cfgは特定の条件が真の場合にのみコードがコンパイルされるように指定するように使います。

#[cfg(feature = "gui")]
fn show_window() {
    // GUI 関連の処理
}

guiという名前の機能が有効である場合にのみshow_window関数がコンパイルされます。

複数の条件を組み合わせることもできます。

#[cfg(all(target_os = "linux", feature = "gui"))]
fn show_window() {
    // Linux での GUI 関連の処理
}

Linuxシステムで特定の機能が有効な場合にのみコードをコンパイルするには、上記のように書きます。


cfgの注意点

正確な条件指定

cfg属性を使用する際は、条件を正確に指定する必要があります。
間違った条件を設定すると、期待しているプラットフォームや機能でコードがコンパイルされなくなる可能性があります。


プラットフォーム固有のコード

異なるプラットフォームに固有のコードを書く場合、そのコードが他のプラットフォームでうまく動作しない可能性があります。
これを避けるためには、可能な限りクロスプラットフォーム対応のコードを書くことをおすすめします。


テストの複雑化

cfgを多用すると異なる条件で異なるコードがコンパイルされるため、テストが複雑になることがあります。すべての条件の組み合わせをカバーするようにテストを設計する必要があります。


Rustをもっと詳しくなりたい方に

Rustプログラミング完全ガイド 他言語との比較で違いが分かる!

個人的には他の言語開発もそれなりにあったことからこの本を読むことでかなりRustへの理解が深まりました。
プログラムやシステム的な専門用語は当たり前に登場するものの、他の言語での開発経験がある方なら問題ないでしょう。むしろその経験があることで、多言語との比較をしながら読み進めることができます。
内容的には大容量かつ丁寧すぎるほど嚙み砕いて説明がされているため、情報量は十分といえます。Rust自体学習コストが高く、難易度の高い言語のためこのくらいが妥当といえます。
プログラミング初心者レベルの方には難しい内容となっていますが、Rustの概念を理解し、基礎を把握することができる本であること間違いなしです。

Rust学習のために筆者が実際に読んでおすすめしたい本をまとめています。


基礎から学ぶRustプログラミング入門

本コースではRustについて全く経験がない方でもスムーズに学習を進められるようにとなっています。
基本的にはコードベースで解説を行い、抽象度が高く難しい内容に関しては適宜スライドも使いながら丁寧に解説します。そしてただ文法を学ぶだけではなく、最終的には演習としてCLIアプリケーションを作成し学習内容の定着を図ります。

以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。

※本ページではアフィリエイトリンク(PR)が含まれています


この記事が参加している募集

この経験に学べ

この記事が気に入ったらサポートをしてみませんか?