Einführung in die rohen Bezeichner in Rust

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 werden wir uns mit rohen Bezeichnern in Rust beschäftigen, die es uns ermöglichen, Schlüsselwörter als Bezeichner in Situationen zu verwenden, in denen dies normalerweise nicht erlaubt ist, wie z. B. als Variablennamen oder Funktionsnamen, insbesondere wenn ältere Editionen von Rust mit neueren Schlüsselwörtern in Konflikt geraten.

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.

Rohe Bezeichner

Rust hat wie viele Programmiersprachen das Konzept der "Schlüsselwörter". Diese Bezeichner haben eine Bedeutung für die Sprache und können daher nicht an Stellen wie Variablennamen, Funktionsnamen und anderen Orten verwendet werden. Rohe Bezeichner ermöglichen es Ihnen, Schlüsselwörter an Orten zu verwenden, an denen sie normalerweise nicht erlaubt sind. Dies ist besonders nützlich, wenn Rust neue Schlüsselwörter einführt und eine Bibliothek, die eine ältere Edition von Rust verwendet, eine Variable oder Funktion mit dem gleichen Namen wie ein in einer neueren Edition eingeführtes Schlüsselwort hat.

Nehmen wir beispielsweise eine Bibliothek foo, die mit der 2015-Edition von Rust kompiliert wurde und eine Funktion namens try exportiert. Dieses Schlüsselwort ist für eine neue Funktion in der 2018-Edition reserviert, so dass wir ohne rohe Bezeichner keine Möglichkeit hätten, die Funktion zu benennen.

extern crate foo;

fn main() {
    foo::try();
}

Sie erhalten folgende Fehlermeldung:

error: expected identifier, found keyword `try`
 --> src/main.rs:4:4
  |
4 | foo::try();
  |      ^^^ expected identifier, found keyword

Sie können dies mit einem rohen Bezeichner schreiben:

extern crate foo;

fn main() {
    foo::r#try();
}

Zusammenfassung

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