99

为了了解 Rust 的工作原理,我决定研究一个基于终端的小型文本编辑器,称为Iota。我克隆了存储库并运行cargo build只是被告知:

error: *if let* syntax is experimental

help: add #![feature(if_let)] to the crate attributes to enable

我应该在哪里添加#![feature(if_let)]到 crate 属性?

4

1 回答 1

107

crate 属性是#[...]适用于封闭上下文 ( ) 的属性 ( #![...])。该属性必须添加到crate root的顶部,因此上下文就是 crate 本身:

#![attribute_name]
#![attribute_name(arg1, ...)]

如果您正在创建

  • 一个库——箱子根将是一个名为的文件lib.rs
  • 一个应用程序—— crate root 将是.rs你构建的主要文件。在许多情况下,这将被称为main.rs
  • 集成测试 - crate 根是每个文件tests/
  • 一个例子 - 箱子根是每个文件examples/

Rust 编程语言Rust 参考一般讨论了一些属性。Unstable Book包含功能标志列表和关于它们作用的简要文档。

有许多不同的 crate 属性,但featurecrate 属性 ( #![feature(feature1, feature2)]) 只能在编译器的夜间版本中使用。不稳定的特性不允许在稳定的 Rust 版本中使用。

于 2014-12-13T03:07:26.557 回答