Macro format!
Fa parte della sezione Fondamenti del percorso Rust di Coddy. Lezione 70 di 75.
In Rust, la macro format! ti consente di combinare testo e variabili in modo leggibile e personalizzabile. Questa macro è simile a println!, ma invece di stampare l'output nella console, restituisce una stringa formattata che puoi memorizzare in una variabile o usare in altre operazioni.
La sintassi più semplice usa segnaposto senza nome {}:
let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// Output: Name: Alice, Age: 30Puoi usare direttamente i nomi delle variabili nei segnaposto:
let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// Output: Name: Bob, Age: 25Puoi specificare la posizione degli argomenti usando dei numeri:
let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Output: second first thirdPuoi controllare il modo in cui i valori vengono formattati usando gli specificatori di formato:
// Formattazione dei numeri
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"
// Riempimento con zeri
let padded = format!("{:0>5}", "123");
// "00123"Sfida
FacileCrea un programma che generi un codice segreto a partire da un nome e dall'anno di nascita seguendo queste regole precise:
- Prende la prima lettera del nome e la rende maiuscola
- Inverte le cifre dell'anno
- Racchiude la prima lettera tra i simboli "⭐"
- Aggiunge un "-" tra la lettera racchiusa e l'anno invertito
Per invertire una stringa, usa il seguente codice: .to_string().chars().rev().collect::<String>()
Provalo tu
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();
// Scrivi il tuo codice qui sotto
let secret_code =
println!("{}", secret_code);
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Input/output di base
Stampare sulla consoleLeggere l'input dell'utenteRiepilogo - Fino a 120Riepilogo - Vero o falso5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Ripasso - Logica sempliceOperatori logici Parte 311Funzioni
Dichiarare le funzioniParametri e argomentiValori restituitiValori restituiti multipliRiepilogo - funzione SigmaRiepilogo - funzione di validazione14Iterare sugli array
Guida ai rangeCiclo for avanzatoPrestito nel cicloOperazioni comuni sugli array3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneInferenza del tipoRipasso - Inizializzare le variabiliConversione di tipo9Cicli
Ciclo for su sequenzeCiclo whileBreakContinueCiclo annidatoEtichette dei cicliCiclo infinitoRiepilogo - Input dinamico12Fondamenti degli array
Dichiarare gli arrayArray come parametroAccedere agli elementiModificare gli arrayRiepilogo - Stampare un array in modo leggibile15Operazioni sulle stringhe
Metodi delle stringheMacro format!Conversione delle stringheRipasso - FormattazioneEsercitati da solo: Compilatore Rust online