Meine Top 7 Funktionen in Rust
Rust stellt hilfreicherweise eine Reihe von „Prelude“-Funktionen bereit.
Ich habe jetzt ein paar Artikel über Rust geschrieben, darunter (zuletzt) Meine Top 7 Keywords in Rust, in dem ich einen Folgeartikel versprochen habe. Im Schlüsselwortartikel ging es um Schlüsselwörter aus der std-Bibliothek, und in diesem Artikel werde ich mir einige Funktionen aus dem Rust-Vorspiel ansehen.
Wenn Sie eine Datei in Rust erstellen und diese dann kompilieren, können (und müssen) Sie häufig externe Module importieren, normalerweise mit den Schlüsselwörtern use
oder extern
. Rust tut jedoch eine gute Sache für Sie, nämlich eine Reihe nützlicher Module zu importieren, ohne dass Sie überhaupt danach fragen. Dies wird als Standardvorspiel bezeichnet. Wie üblich gibt es in der Rust-Dokumentation gute Informationen dazu.
Hier sind einige meiner Lieblingsfunktionen aus dem Standardvorspiel: nützliche Funktionen, auf die ich immer wieder zurückkomme, und einige, die ein wenig darüber verraten, wie Rust über die Welt „denkt“.
- clone() – Es gibt Zeiten, in denen Sie eine Variable irgendwo verwenden müssen, wo die Rust-Regeln der Speicherverwaltung dies schwierig machen. Glücklicherweise können Sie dort, wo das Merkmal
std::clone::Clone
implementiert ist (was so gut wie überall vorkommt), in eine neue Variable kopieren. Tun Sie dies nicht nur, um die Speicherverwaltung von Rust zu umgehen, die Ihnen helfen soll, sondern es kann auch sehr nützlich sein, wenn Sie tatsächlich eine neue Kopie von etwas benötigen. - format!() – OK, offiziell ist dies eher ein Makro als eine Funktion, aber es ist sehr nützlich. Sie kennen und verwenden wahrscheinlich
println!()
, das zum Drucken auf stdout verwendet wird.format!()
macht so ziemlich das Gleiche für Strings, die Sie nicht sofort ausgeben möchten. - is_ok() – Um ehrlich zu sein, ist dies nur ein Vorwand für mich, über
std::result::Result
zu sprechen, das äußerst nützlich ist und es Ihnen ermöglicht, und zu erstellen Der Zugriff führt zu Erfolg (Ok
) oder Fehler (Err
). Die Funktionis_ok()
sagt Ihnen, ob das, was Sie erhalten, ein OK-Ergebnis ist (und denken Sie daran, dass das „k“ ein Kleinbuchstabe ist – wahrscheinlich mein häufigster Syntaxfehler beim Schreiben von Rust). Um Rust richtig zu verstehen, müssen Sie sich mitResult
vertraut machen. Es wird häufig verwendet und Sie sollten es auch nutzen. - is_some() – Wie Result ist
std::option::Option
etwas, das Sie beim Schreiben von Rust wahrscheinlich häufig verwenden werden. Da es keine Entsprechung für den in vielen anderen Sprachen verwendetenNull
gibt, stellt sich die Frage, was Sie tun können, wenn kein Wert generiert wurde, der zurückgegeben werden könnte. Die Antwort ist, dass Sie eineOption
verwenden können, der Sie einenNone
-Wert zuweisen können; In anderen Fällen können Sie einen Wert innerhalb einesSome()
-Wrappers bereitstellen. Die Funktionis_some()
prüft, ob ein Wert vorhanden ist. Wenn ja, können Sie mit der Funktionunwrap()
darauf zugreifen (siehe unten). Gewöhnen Sie sich wieResult
an die Verwendung vonOption
, da Sie es überall sehen werden. - iter() – Viele verschiedene Sammlungen können iteriert werden, und mit der Funktion
iter()
können Sie sehr einfach auf alle Werte zugreifen. Möglicherweise möchten Sie manchmal die verwandten Funktioneninto_iter()
unditer_mut()
verwenden (für veränderliche Werte, was nicht überraschend ist),iter()
jedoch schon Was Sie am häufigsten verwenden werden, und Sie können alle möglichen nützlichen Funktionen damit verknüpfen. - panic!() – Es gibt Zeiten, in denen Ihr Programm Eingaben erhält oder Ausgaben generiert, die es eigentlich nicht sollte. Wenn
std::result::Result
nicht gut genug ist und Sie Fehler nicht über Ihren Ausführungsstapel weitergeben können, da dies nicht die Art von Fehler ist, die sollte behandelt werden, können Sie mitpanic!()
(ein anderes Makro, wenn ich ehrlich bin) das Stoppen Ihres Programms erzwingen und eine Fehlermeldung hinzufügen, um weitere Informationen bereitzustellen. - unwrap() – Wenn Sie ein
std::option::Option
oder einstd::result::Result
haben und Sie Wenn Sie auf den Inhalt zugreifen möchten, verwenden Sieunwrap()
, das bei einem Problem in Panik gerät (oderexpect()
, wenn Sie dies möchten). um eine bestimmte Nachricht hinzuzufügen).
Dies ist ein ziemlich einfacher Artikel, aber wenn er für Leute nützlich ist, die anfangen, sich mit Rust vertraut zu machen, dann bin ich glücklich. Ich habe vor, mich weiterhin mit einigen der grundlegenderen Sprachkomponenten in Rust und einigen grundlegenden Fallstricken zu befassen, also behalten Sie die Augen offen.
Dieser Artikel wurde ursprünglich über Alice, Eve und Bob veröffentlicht und wird mit Genehmigung des Autors nachgedruckt.