为了了解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属性中?
答案 0 :(得分:41)
crate属性是一个适用于封闭上下文(#[...]
)的属性(#![...]
)。此属性必须添加到 crate root 的顶部,因此上下文是crate本身:
#![attribute_name]
#![attribute_name(arg1, ...)]
如果您正在创建
lib.rs
的文件。.rs
文件。tests/
examples/
The Rust Programming Language, first edition谈论了一般的属性,Rust Reference谈到了“只有箱子的属性”。 The Unstable Book包含功能标记列表和有关其功能的简要文档。
有许多不同的crate属性,但feature
crate属性(#![feature(feature1, feature2)]
)只能在编译器的 nightly 版本中使用。不稳定的功能不允许在稳定的Rust版本中使用。