L'affichage en Cairo permet de montrer des messages ou des informations de débogage pendant l'exécution du programme.
Cairo fournit deux macros pour l'affichage :
println! : affiche un message suivi d'un retour à la ligne.print! : affiche un message sans retour à la ligne.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
Les espaces réservés {} sont remplacés par les valeurs fournies.
Utilise format! pour créer un ByteArray sans l'afficher immédiatement :
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
Pour les types personnalisés, implémente Display ou dérive Debug pour pouvoir les afficher :
#[derive(Debug)]
struct Point { x: u8, y: u8 }
let p = Point { x: 3, y: 4 };
println!("{:?}", p); // Debug output: Point { x: 3, y: 4 }
Utilise {:x} pour afficher les entiers en hexadécimal :
println!("{:x}", 255); // Output: ff
Dans le monde magique d'Echoes existe un sort puissant appelé « EchoSpeak ». Ce sort permet aux sorciers de communiquer leurs pensées et leurs observations à travers des paroles, que des plumes magiques retranscrivent par écrit. Pour maîtriser ce sort, les sorciers doivent apprendre à formuler leurs mots et leurs pensées de manière claire et concise, qu'il s'agisse de nombres, d'objets ou de constructions magiques complexes.
Ta tâche, en tant qu'apprenti sorcier, est de maîtriser l'art d'EchoSpeak. Pour cela, tu dois apprendre à écrire différents types de données magiques sur les parchemins enchantés. EchoSpeak fonctionne en prenant une encre magique spéciale, représentée par le ByteArray, et en inscrivant des messages formatés sur le parchemin à l'aide de sorts comme println! et print!.
Cependant, face à des constructions magiques personnalisées comme des objets enchantés ou des sorts, EchoSpeak a besoin d'une incantation spéciale pour comprendre comment représenter ces objets. C'est là que ta magie entre en jeu : apprendre à implémenter des sorts spéciaux appelés traits pour des objets magiques personnalisés.
Parfois, les sorciers doivent formater leurs mots magiques avant de les inscrire sur les parchemins. Tu vas écrire une fonction qui formate trois mots magiques en un seul message.
Implémente une fonction appelée format_magical_chant qui renvoie une chaîne formatée de la forme « chant1-chant2-chant3 ».
Exemple :
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
Le royaume d'Echoes est rempli d'objets enchantés. L'un d'eux est l'EchoStone, qui possède deux attributs magiques : power et duration. Ta tâche est d'implémenter la fonction stringify_echo_stone qui convertit un EchoStone en ByteArray dans un format spécial "EchoStone [power: x, duration: y]", en implémentant le trait Display.
Exemple :
let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");
En tant qu'apprenti sorcier, le débogage est essentiel pour les constructions magiques complexes. Tu vas créer une fonction qui affiche un EchoStone à des fins de débogage grâce au trait Debug. Le format attendu est le suivant : "Debugging EchoStone: { power: x, duration: y }".
Exemple :
let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Inscris-toi sur Exercism pour apprendre et maîtriser Cairo avec 25 concepts68 exercices, et un vrai mentorat humain, le tout gratuitement.