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.
- 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. - Um Identitätsprobleme zu vermeiden, verwenden Sie das Schlüsselwort
as
, um Dinge zu ändern. - 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 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