【问题标题】:How to group imports in Rust with conditional compilation?如何使用条件编译在 Rust 中对导入进行分组?
【发布时间】:2020-01-29 17:27:52
【问题描述】:

我希望通过条件编译对我的所有导入进行分组。

我知道#[cfg(target_os = "windows")] 属性组织了导入,但它只适用于一次导入。

如何使用一个条件编译属性导入多个包?

我正在寻找类似的东西:

#[cfg(target_os = "windows")]
{
    use windows_lib1;
    use windows_lib2;
}

#[cfg(target_os = "linux")]
{
    use linux_lib1;
    use linux_lib2;
}

【问题讨论】:

标签: import rust package


【解决方案1】:

您可以通过这种方式对使用导入进行分组:

#[cfg(target_os = "windows")]
use {
    windows_lib1,
    windows_lib2,
};

【讨论】:

  • "从未发现它被记录在案,但这是我的经验倾向于证明的" → 实际上是 well documented 属性适用于以下“事物”(以及外部属性 (#!) 到“事物" 包含它们)。
  • @mcarton 我们真的可以将“事物”作为规范词吗?它是什么 ?一个段落 ?一个函数?一个模块?这太模糊了,这就是为什么我认为它没有记录在案。
  • 您是否还在抱怨词汇不恰当? use 不是一个声明,它是一个项目。他们在文档中使用“事物”,因为这些术语具有通常对大多数人来说并不重要的精确定义。属性适用于大多数事物,无论是项目、语句、函数参数等,因此文档只称它们为“事物”。
  • 在这样的正式文档中,我期望精确。事情也不是一个定义明确的术语 imo。
  • 该文档详细解释了可以应用哪些事物属性,因此“事物”在此上下文中定义良好:“事物”指的是项声明,外部块,函数,实现,模块,语句、表达式、枚举变量、结构/联合字段、匹配表达式臂或泛型类型或生命周期参数。
猜你喜欢
  • 1970-01-01
  • 2017-04-20
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2017-02-08
  • 1970-01-01
相关资源
最近更新 更多