是否可以对需要相同属性的项目进行分组?

Jua*_*eni 8 rust

这更像是一个风格问题,但仍然很有趣.是否可以对事物进行分组,以便属性只有一次?

例如,在以下代码中,我使用相同的属性三次:

#[cfg(target_os = "linux")]
extern crate nix;
#[cfg(target_os = "linux")]
extern crate libc;

#[cfg(target_os = "linux")]
use std::{
    mem,
};
Run Code Online (Sandbox Code Playgroud)

oli*_*obk 8

您可以使用辅助模块来cfg整个模块,然后重新导出其内容:

#[cfg(target_os = "linux")]
mod linux {
    extern crate nix;
    extern crate libc;
    pub use std::{
        mem,
    };
}
#[cfg(target_os = "linux")]
use linux::*;
Run Code Online (Sandbox Code Playgroud)

你仍然需要两次提到cfg.