Menu
Coddy logo textTech

Macro format!

Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 70 sur 75.

En Rust, la macro format! vous permet de combiner du texte avec des variables de manière lisible et personnalisable. Cette macro est similaire à println!, mais au lieu d'afficher la sortie dans la console, elle retourne une chaîne formatée que vous pouvez stocker dans une variable ou utiliser dans d'autres opérations.

La syntaxe la plus simple utilise des espaces réservés non nommés {} :

let name = "Alice";
let age = 30;

let formatted = format!("Name: {}, Age: {}", name, age);
println!("{}", formatted);
// Sortie : Name: Alice, Age: 30

Vous pouvez utiliser les noms de variables directement dans les espaces réservés :

let name = "Bob";
let age = 25;

let formatted = format!("Name: {name}, Age: {age}");
println!("{}", formatted);
// Sortie : Name: Bob, Age: 25

Vous pouvez spécifier la position des arguments à l'aide de nombres :

let formatted = format!("{1} {0} {2}", "first", "second", "third");
println!("{}", formatted);
// Sortie : second first third

Vous pouvez contrôler la manière dont les valeurs sont formatées à l'aide de spécificateurs de format :

// Formatage de nombres
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi);
// "3.14"

// Remplissage avec des zéros
let padded = format!("{:0>5}", "123");
// "00123"
challenge icon

Défi

Facile

Créez un programme qui génère un code secret à partir d'un nom et d'une année de naissance en utilisant ces règles exactes :

  • Prend la première lettre du nom et la met en majuscule
  • Inverse les chiffres de l'année
  • Encadre la première lettre avec des symboles "⭐"
  • Ajoute un "-" entre la lettre encadrée et l'année inversée

Pour inverser une chaîne de caractères, utilisez le code suivant : .to_string().chars().rev().collect::<String>()

Aide-mémoire

La macro format! combine du texte avec des variables et retourne une chaîne formatée qui peut être stockée dans une variable.

Syntaxe de base avec des espaces réservés non nommés :

let name = "Alice";
let age = 30;
let formatted = format!("Name: {}, Age: {}", name, age);

Utilisation directe des noms de variables dans les espaces réservés :

let name = "Bob";
let age = 25;
let formatted = format!("Name: {name}, Age: {age}");

Spécification des positions des arguments avec des nombres :

let formatted = format!("{1} {0} {2}", "first", "second", "third");
// Output: "second first third"

Spécificateurs de format pour contrôler la sortie :

// Formatage de nombres
let pi = 3.1415926;
let formatted_float = format!("{:.2}", pi); // "3.14"

// Remplissage avec des zéros (Padding)
let padded = format!("{:0>5}", "123"); // "00123"

Pour inverser une chaîne de caractères : .to_string().chars().rev().collect::<String>()

Essayez vous-même

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();

    // Écrivez votre code ci-dessous
    
    
    let secret_code =
    println!("{}", secret_code);
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fundamentals