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

Декларація use

Декларацію use можна використовувати, щоб прив’язати повний шлях до нової назви для простішого доступу. Її часто використовують так:

use crate::deeply::nested::{
    my_first_function,
    my_second_function,
    AndATraitType
};

fn main() {
    my_first_function();
}

Ви можете використовувати ключове слово as, щоб прив’язати імпорти до іншої назви:

// Прив’язати шлях `deeply::nested::function` до `other_function`.
use deeply::nested::function as other_function;

fn function() {
    println!("called `function()`");
}

mod deeply {
    pub mod nested {
        pub fn function() {
            println!("called `deeply::nested::function()`");
        }
    }
}

fn main() {
    // Простіший доступ до `deeply::nested::function`
    other_function();

    println!("Entering block");
    {
        // Це еквівалентно `use deeply::nested::function as function`.
        // Ця `function()` затінить зовнішню.
        use crate::deeply::nested::function;

        // Прив’язки `use` мають локальну область видимості. У цьому випадку
        // затінення `function()` є лише в цьому блоці.
        function();

        println!("Leaving block");
    }

    function();
}

Ви також можете використовувати pub use, щоб перевизначити експорт елемента з модуля, щоб до нього можна було отримати доступ через публічний інтерфейс модуля:

mod deeply {
    pub mod nested {
        pub fn function() {
            println!("called `deeply::nested::function()`");
        }
    }
}

mod cool {
    pub use crate::deeply::nested::function;
}

fn main() {
    cool::function();
}