Ein einfaches Closure definieren
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 60 von 66.
Nachdem Sie nun verstanden haben, was Closures sind, lernen wir nun, wie man sie in Ihrem Code definiert und verwendet. Der einfachste Weg, eine Closure zu erstellen, besteht darin, sie einer Variablen zuzuweisen, was es Ihnen ermöglicht, sie später aufzurufen.
So definieren Sie einen einfachen Closure, der keine Parameter entgegennimmt:
let my_closure = || {
println!("Hello from the closure!");
};Beachten Sie die leeren vertikalen Striche || – dies zeigt an, dass der Closure keine Argumente entgegennimmt. Die geschweiften Klammern enthalten den Code, der ausgeführt wird, wenn Sie den Closure aufrufen.
Um Ihre Closure aufzurufen, verwenden Sie sie genau wie eine Funktion, indem Sie Klammern hinter den Variablennamen setzen:
let my_closure = || {
println!("Hello from the closure!");
};
my_closure(); // Dies ruft die Closure auf und gibt die Nachricht ausAufgabe
EinfachSie erhalten eine einzelne Eingabe, die eine Nachricht enthält. Erstellen Sie eine Closure, die keine Parameter entgegennimmt und diese Nachricht ausgibt. Speichern Sie die Closure in einer Variablen und rufen Sie sie anschließend auf, um die Nachricht anzuzeigen.
Anforderungen:
- Lesen Sie die Eingabenachricht ein und entfernen Sie Leerzeichen am Anfang und Ende (trim)
- Erstellen Sie eine Closure mit der
||-Syntax, die die Nachricht ausgibt - Speichern Sie die Closure in einer Variablen
- Rufen Sie die Closure auf, um sie auszuführen
Eingabe:
- Eine einzelne Zeile, die eine Nachricht enthält (z. B.
Welcome to Rust!)
Ausgabe:
- Die von der Closure ausgegebene Nachricht
Spickzettel
Ein Closure wird mit vertikalen Strichen || definiert und kann in einer Variablen gespeichert werden:
let my_closure = || {
println!("Hello from the closure!");
};Um ein Closure aufzurufen, verwenden Sie Klammern nach dem Variablennamen:
my_closure(); // Führt das Closure ausProbier es selbst
use std::io;
fn main() {
// Eingabe lesen
let mut message = String::new();
io::stdin().read_line(&mut message).expect("Failed to read line");
let message = message.trim();
// TODO: Erstelle einen Closure, der die Nachricht ausgibt, und speichere ihn in einer Variablen
// TODO: Rufe den Closure auf, um die Nachricht auszugeben
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen7Fehlerbehandlung mit 'Result'
Was ist ein 'Result'?'match' mit 'Result' verwendenis_ok() und is_err()Abkürzungen: unwrap und expectDer Fragezeichen-Operator '?'Strings in Zahlen parsenZusammenfassung – Sichere Divisionsfunktion10Closures & Anonyme Funktionen
Was ist ein Closure?Ein einfaches Closure definierenClosures mit ParameternDie Umgebung erfassenRückblick – Einfaches Adder-Closure2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler Code