Rust-Namensräume mit der use-Anweisung

RustRustBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab wird die use-Anweisung verwendet, um die Notwendigkeit der manuellen Namensräume in Rust zu eliminieren und Namen ohne explizite Angabe des Namensraums verfügbar zu machen.

Hinweis: Wenn das Lab keinen Dateinamen angibt, können Sie einen beliebigen Dateinamen verwenden. Beispielsweise können Sie main.rs verwenden und es mit rustc main.rs &&./main kompilieren und ausführen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL rust(("Rust")) -.-> rust/FunctionsandClosuresGroup(["Functions and Closures"]) rust(("Rust")) -.-> rust/BasicConceptsGroup(["Basic Concepts"]) rust/BasicConceptsGroup -.-> rust/variable_declarations("Variable Declarations") rust/FunctionsandClosuresGroup -.-> rust/function_syntax("Function Syntax") rust/FunctionsandClosuresGroup -.-> rust/expressions_statements("Expressions and Statements") subgraph Lab Skills rust/variable_declarations -.-> lab-99245{{"Rust-Namensräume mit der use-Anweisung"}} rust/function_syntax -.-> lab-99245{{"Rust-Namensräume mit der use-Anweisung"}} rust/expressions_statements -.-> lab-99245{{"Rust-Namensräume mit der use-Anweisung"}} end

use

Die use-Anweisung kann verwendet werden, um die manuellen Namensräume zu vermeiden:

// Ein Attribut, um Warnungen für nicht genutzten Code zu unterdrücken.
#![allow(dead_code)]

enum Status {
    Rich,
    Poor,
}

enum Work {
    Civilian,
    Soldier,
}

fn main() {
    // Explicit `use` jedes Namens, damit sie ohne manuellen Namensraum verfügbar sind.
    use crate::Status::{Poor, Rich};
    // Automatisch `use` jedes Namens innerhalb von `Work`.
    use crate::Work::*;

    // Entspricht `Status::Poor`.
    let status = Poor;
    // Entspricht `Work::Civilian`.
    let work = Civilian;

    match status {
        // Beachten Sie die fehlende Namensraumangabe aufgrund der expliziten `use` oben.
        Rich => println!("The rich have lots of money!"),
        Poor => println!("The poor have no money..."),
    }

    match work {
        // Beachten Sie erneut die fehlende Namensraumangabe.
        Civilian => println!("Civilians work!"),
        Soldier  => println!("Soldiers fight!"),
    }
}

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Use-Lab abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.