Rust アトリビュート
モジュール、クレート、要素に対するメタデータのこと。別名 注釈
例えば、コンパイル時の条件分岐やリント(構文チェッカー)の無効化(無視)や厳格化などをすることができる
クレート全体のアトリビュート→#![crate_attribute]
モジュール・要素のアトリビュート→#[item_attribute]
クレート全体には!が入る
code:attribute_sample.rs
// Linuxの場合はこの関数がビルドされる
fn is_linux() -> bool {
true
}
// Linuxじゃない場合はこの関数がビルドされる
fn is_linux() -> bool {
false
}
fn main() {
if is_linux() {
println!("あなたが動かしているOSはLinuxです");
} else {
println!("あなたが動かしているOSはLinuxではありません");
}
}
ちなみにtarget_osは以下のバリエーションがある(全部じゃないかもしれない)
windows → Windows
linux → Linux
macos → macOS