将 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
表达式),但已经有很多内容了。
据我对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
表达式),但已经有很多内容了。