Makro format!
Część sekcji Podstawy ścieżki Rust w Coddy. Lekcja 70 z 75.
W Rust makro format! pozwala łączyć tekst ze zmiennymi w czytelny i konfigurowalny sposób. To makro jest podobne do println!, ale zamiast wyświetlać wynik w konsoli, zwraca sformatowany ciąg znaków, który możesz zapisać w zmiennej lub wykorzystać w innych operacjach.
Najprostsza składnia używa nienazwanych symboli zastępczych {}:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// Wynik: Name: Alice, Age: 30Możesz używać nazw zmiennych bezpośrednio w symbolach zastępczych:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// Wynik: Name: Bob, Age: 25Możesz określić pozycję argumentów za pomocą liczb:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Wynik: second first thirdMożesz kontrolować sposób formatowania wartości za pomocą specyfikatorów formatu:
// Formatowanie liczb
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"
// Dopełnianie zerami
let padded = format!("{:0>5}", "123");
// "00123"Wyzwanie
ŁatwyUtwórz program, który generuje tajny kod z imienia i roku urodzenia, stosując dokładnie następujące zasady:
- Pobiera pierwszą literę imienia i zamienia ją na wielką
- Odwraca kolejność cyfr w roku
- Otacza pierwszą literę symbolami "⭐"
- Dodaje znak "-" między otoczoną literą a odwróconym rokiem
Aby odwrócić ciąg znaków, użyj następującego kodu: .to_string().chars().rev().collect::<String>()
Spróbuj swoich sił
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();
// Napisz swój kod poniżej
let secret_code =
println!("{}", secret_code);
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloSkrócone operacje arytmetyczneOperatory porównaniaPorównywanie ciągów znaków7Podstawowe wejście i wyjście
Wyświetlanie w konsoliOdczytywanie danych od użytkownikaPowtórka – do 120Powtórka – prawda czy fałsz5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka — prosta logikaOperatory logiczne, część 311Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneWiele wartości zwracanychPowtórka – funkcja SigmaPowtórka – funkcja walidująca14Iterowanie po tablicach
Przewodnik po zakresachUlepszona pętla forPożyczanie w pętliTypowe operacje na tablicach3Zmienne – część 2
Deklarowanie typuKonwencje nazewnictwaWnioskowanie o typiePodsumowanie – inicjalizacja zmiennychRzutowanie typów9Pętle
Pętla for dla sekwencjiPętla whileInstrukcja breakInstrukcja continuePętle zagnieżdżoneEtykiety pętliPętla nieskończonaPodsumowanie — dynamiczne dane wejściowe12Podstawy tablic
Deklarowanie tablicTablica jako parametrDostęp do elementówModyfikowanie tablicPodsumowanie — czytelny wydruk tablicy15Operacje na ciągach znaków
Metody ciągów znakówMakro format!Konwersja ciągów znakówPowtórka — formatowaniePoćwicz samodzielnie: Kompilator Rust online