Unterschied zwischen Mod und Use in Rust

Muhammad Adil 21 Juni 2022
  1. Begriff der use in Rust
  2. Konzept mod in Rust
  3. Grundlegender Unterschied zwischen mod und use in Rust
Unterschied zwischen Mod und Use in Rust

Rust ist eine moderne und schnelle Programmiersprache, die als sichere, nebenläufige und funktionale Systemprogrammiersprache entwickelt wurde. Es wurde 2006 von Mozilla entwickelt.

Rust hat drei Hauptkonzepte: Eigentum, Ausleihe und Lebensdauer. Rust verwendet die beiden Schlüsselwörter: use und mod.

Mit dem Schlüsselwort use werden die Inhalte des Moduls in den aktuellen Scope importiert. Das bedeutet, dass es ab diesem Zeitpunkt alle Funktionen innerhalb des Moduls zum Aufrufen verfügbar macht.

mod hingegen importiert nur ein einzelnes Element aus einem anderen Modul in Ihren aktuellen Gültigkeitsbereich, sodass es nach Bedarf aufgerufen oder referenziert werden kann, ohne sich Gedanken darüber machen zu müssen, dass von nun an etwas anderes in diesem Modul zugänglich ist.

Begriff der use in Rust

Indem ein anderer Weg eingeschlagen wird, fügt use dem aktuellen Namensraum ein weiteres Element hinzu. Ein Element ist ein generisches Objekt, auf das Sie zugreifen müssen, z. B. eine Funktion, eine Struktur oder eine Eigenschaft.

Eine Route ist eine Modulhierarchie, der Sie folgen müssen, um sie zu erreichen. Der aktuelle Namensraum bezieht sich darauf, ein Objekt in die aktuelle Datei zu bringen, sodass Sie darauf zugreifen können, als ob es lokal wäre.

Merkmale von use in Rust

Rust bietet einen ziemlich dynamischen Mechanismus für Benutzer, der es einfach macht, viele Objekte mit minimalem Aufwand in den bestehenden Namensraum einzuführen.

  1. Sie können das Schlüsselwort self verwenden, um das universelle übergeordnete Modul und alle anderen Dinge, die Sie verwenden möchten, in den Namensraum einzuführen.
  2. Um Identitätsprobleme zu vermeiden, verwenden Sie das Schlüsselwort as, um Dinge zu ändern.
  3. Sie können die glob-ähnliche Syntax verwenden, um mehrere Objekte in den aktuellen Namensraum zu bringen:
use std::path::{self, Path, PathBuf};

Konzept mod in Rust

Mit Modulen können Sie Ihren Code in separaten Dateien organisieren. Sie unterteilen Ihren Code in logische Teile, die importiert und in anderen Modulen oder Programmen verwendet werden können.

Kurz gesagt, mod wird verwendet, um Module und Submodule anzugeben, damit Sie sie in Ihrer aktuellen .rs-Datei verwenden können, was kompliziert sein könnte. Warum nicht einfach nutzen?

Ein Modul in Rust ist nichts anderes als ein Behälter für null oder mehr Dinge. Es ist eine Methode zum logischen Organisieren von Elementen, damit Ihr Modul leicht durchlaufen kann.

Module können verwendet werden, um die Baumstruktur einer Crate zu erstellen, sodass Sie Ihre Arbeit bei Bedarf auf mehrere Dateien mit beliebiger Tiefe aufteilen können. Eine einzelne .rs-Datei kann mehrere Module enthalten, oder eine einzelne Datei kann mehrere Module enthalten.

Zuletzt können Sie mit mod Objekte logisch gruppieren. Sie können mod-Blöcke in einer einzigen .rs-Datei konstruieren, oder Sie können Ihren Quellcode auf mehrere .rs-Dateien aufteilen, mod verwenden und Cargo die Baumstruktur Ihrer Kiste generieren lassen.

Grundlegender Unterschied zwischen mod und use in Rust

Der Hauptunterschied zwischen ihnen besteht darin, dass use ein Modul aus einer externen Bibliothek importiert, während mod ein internes Modul erstellt, das nur innerhalb der aktuellen Datei verwendet werden kann.

Lassen Sie uns ein Beispiel mit dem Schlüsselwort use besprechen.

use hello::rota::function as my_function;
fn function() {
    println!("demo `function()`");
}
mod hello {
    pub mod rota {
        pub fn function() {
            println!("demo `hello::rota`");
        }
    }
}
fn main() {
    my_function();

    println!("Coming");
    {
        use crate::hello::rota::function;
        function();
        println!("Returning");
    }
    function();
}

Ausgabe:

demo `hello::rota`
Coming
demo `hello::rota`
Returning
demo `function()`

Klicken Sie hier, um die Live-Demonstration des oben genannten Codes zu überprüfen.

Muhammad Adil avatar Muhammad Adil avatar

Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.

Facebook