Fortgeschrittenes Beispiel für Typenschluss in Rust

Beginner

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

Einführung

In diesem Lab wird der Typenschlussmotor für seine Fähigkeit hervorgehoben, den Typ einer Variable anhand seiner Verwendung und der Wertzuweisung zu deduzieren, was in einem fortgeschrittenen Beispiel mit der Programmiersprache Rust demonstriert wird.

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.

Typenschluss

Der Typenschlussmotor ist ziemlich intelligent. Er macht mehr als nur auf den Typ des Wertausdrucks beim Initialisieren zu schauen. Er schaut auch, wie die Variable danach verwendet wird, um ihren Typ zu inferieren. Hier ist ein fortgeschrittenes Beispiel für Typenschluss:

fn main() {
    // Aufgrund der Annotation weiß der Compiler, dass `elem` vom Typ u8 ist.
    let elem = 5u8;

    // Erstellt einen leeren Vektor (ein wachsender Array).
    let mut vec = Vec::new();
    // Zu diesem Zeitpunkt weiß der Compiler nicht den genauen Typ von `vec`, er
    // weiß nur, dass es ein Vektor von etwas ist (`Vec<_>`).

    // Fügt `elem` in den Vektor ein.
    vec.push(elem);
    // Aha! Jetzt weiß der Compiler, dass `vec` ein Vektor von `u8`-Werten ist (`Vec<u8>`)
    // TODO ^ Versuchen Sie, die Zeile `vec.push(elem)` auszukommentieren

    println!("{:?}", vec);
}

Es war keine Typannotation der Variablen erforderlich, der Compiler ist zufrieden und auch der Programmierer!

Zusammenfassung

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