将 Rust 属性应用于多行

Applying a Rust attribute to more than one line

据我对the Rust documentation, attributes are applied only to the line directly following an attribute. So, if I want to conditionally compile一行的理解,我可以这样做:

#[cfg(target_family = "unix")]
use termion::{color, style};

当我想有条件地编译两行时会发生什么?

#[cfg(target_family = "unix")]
use termion::{color, style};
#[cfg(target_family = "unix")]
use termion::screen::*;

有更简洁的方法吗?

据我所知,没有通用的分组答案,但有具体的解决方案。

大多数情况下,您可以只使用一个块:

#[cfg(target_family = "unix")]
{
    // some code
}

use 语句总是可以组合在一起,即使没有共同的根:

#[cfg(target_family = "unix")]
use {
    termion::{color, style},
    std::io,
};

attributes are applied only to the line directly following an attribute

不是真的。它们适用于以下 "thing"。有一个受支持的列表 "things" in the documentation。这不是您可能想要的所有内容(例如,它不是 if 表达式),但已经有很多内容了。