Що таке атрибут ящика і куди його додати?


83

Щоб відчути, як працює Rust, я вирішив поглянути на маленький текстовий редактор на базі терміналу під назвою Iota . Я клонував сховище і побіг cargo buildлише, щоб мені сказали:

error: *if let* syntax is experimental

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

Де я повинен додати #![feature(if_let)]до обрешітки атрибути?


3
Як примітка, новіші (нічні) збірки Rust увімкнули цю функцію за замовчуванням, тому оновлення Rust також усуне вашу проблему.
Шепмастер

Відповіді:


84

Атрибут ящика - це атрибут ( #[...]), який застосовується до контексту, що включає ( #![...]). Цей атрибут повинен бути доданий у верхню частину кореня вашого ящика , отже, контекстом є сам ящик:

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

Якщо ви створюєте

  • бібліотека - корінь ящика буде називатися файлом lib.rs
  • додаток - корінь ящика буде основним .rsфайлом, який ви створюєте . У багатьох випадках це буде називатисяmain.rs
  • інтеграційний тест - корінь ящика є кожним файлом tests/
  • приклад - корінь ящика - це кожен файл у examples/

Мова програмування Rust та Rust Reference трохи розповідають про атрибути загалом. Нестабільна книга містить список прапорів та коротку документацію про те, що вони роблять.

Існує багато різних атрибутів crate, але featureатрибут crate ( #![feature(feature1, feature2)]) може використовуватися лише у нічній версії компілятора. Нестійкі функції не можна використовувати у стабільних версіях Rust.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.