format!-Makro
Teil des Abschnitts Fundamentals der Rust-Journey von Coddy — Lektion 70 von 75.
In Rust ermöglicht das format!-Makro die Kombination von Text mit Variablen auf eine lesbare und anpassbare Weise. Dieses Makro ähnelt println!, aber anstatt die Ausgabe auf der Konsole auszugeben, gibt es einen formatierten String zurück, den Sie in einer Variablen speichern oder in anderen Operationen verwenden können.
Die einfachste Syntax verwendet unbenannte Platzhalter {}:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// Ausgabe: Name: Alice, Age: 30Sie können Variablennamen direkt in den Platzhaltern verwenden:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// Ausgabe: Name: Bob, Age: 25Du kannst die Position von Argumenten mithilfe von Zahlen angeben:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Ausgabe: second first thirdSie können steuern, wie Werte mithilfe von Formatbezeichnern formatiert werden:
// Zahlenformatierung
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"
// Auffüllen mit Nullen
let padded = format!("{:0>5}", "123");
// "00123"Aufgabe
EinfachErstellen Sie ein Programm, das aus einem Namen und einem Geburtsjahr einen Geheimcode nach genau diesen Regeln generiert:
- Nimmt den ersten Buchstaben des Namens und wandelt ihn in einen Großbuchstaben um
- Kehrt die Ziffern des Jahres um
- Umschließt den ersten Buchstaben mit "⭐" Symbolen
- Fügt ein "-" zwischen dem umschlossenen Buchstaben und dem umgekehrten Jahr ein
Um einen String umzukehren, verwenden Sie den folgenden Code: .to_string().chars().rev().collect::<String>()
Spickzettel
Das format!-Makro kombiniert Text mit Variablen und gibt einen formatierten String zurück, der in einer Variablen gespeichert werden kann.
Grundlegende Syntax mit unbenannten Platzhaltern:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);Verwendung von Variablennamen direkt in Platzhaltern:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");Angeben von Argumentpositionen mit Zahlen:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
// Output: "second first third"Formatbezeichner zur Steuerung der Ausgabe:
// Number formatting
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi); // "3.14"
// Padding with zeros
let padded = format!("{:0>5}", "123"); // "00123"Um einen String umzukehren: .to_string().chars().rev().collect::<String>()
Probier es selbst
use std::io;
fn main() {
let mut input_name = String::new();
let mut input_year = String::new();
io::stdin().read_line(&mut input_name).unwrap();
io::stdin().read_line(&mut input_year).unwrap();
let name = input_name.trim();
let year: i32 = input_year.trim().parse().unwrap();
// Schreibe deinen Code unten
let secret_code =
println!("{}", secret_code);
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische Eingabe