Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Атрибути

Атрибут — це метадані, застосовані до деякого модуля, крейту або елемента. Ці метадані можна використовувати для/для:

Атрибути мають вигляд #[outer_attribute] або #![inner_attribute], а різниця між ними полягає в тому, де вони застосовуються.

  • #[outer_attribute] застосовується до елемента, що безпосередньо йде після нього. Деякі приклади елементів: функція, оголошення модуля, константа, структура, перелік. Ось приклад, де атрибут #[derive(Debug)] застосовується до структури Rectangle:

    #![allow(unused)]
    fn main() {
    #[derive(Debug)]
    struct Rectangle {
        width: u32,
        height: u32,
    }
    }
  • #![inner_attribute] застосовується до зовнішнього елемента (зазвичай модуля або крейту). Іншими словами, цей атрибут інтерпретується як такий, що застосовується до всієї області видимості, у якій він розміщений. Ось приклад, де #![allow(unused_variables)] застосовується до всього крейту (якщо розміщено в main.rs):

    #![allow(unused_variables)]
    
    fn main() {
        let x = 3; // This would normally warn about an unused variable.
    }

Атрибути можуть приймати аргументи з різним синтаксисом:

  • #[attribute = "value"]
  • #[attribute(key = "value")]
  • #[attribute(value)]

Атрибути можуть мати кілька значень і також можуть бути розбиті на кілька рядків:

#[attribute(value, value2)]


#[attribute(value, value2, value3,
            value4, value5)]