La stampa in Cairo ti permette di visualizzare messaggi o informazioni di debug durante l'esecuzione del programma.
Cairo fornisce due macro per la stampa:
println!: Stampa un messaggio e poi va a capo.print!: Stampa un messaggio senza andare a capo.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
I segnaposto {} vengono sostituiti con i valori forniti.
Usa format! per creare un ByteArray senza stamparlo subito:
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
Per i tipi personalizzati, implementa Display o deriva Debug per stamparli:
#[derive(Debug)]
struct Point { x: u8, y: u8 }
let p = Point { x: 3, y: 4 };
println!("{:?}", p); // Debug output: Point { x: 3, y: 4 }
Usa {:x} per stampare i numeri interi in esadecimale:
println!("{:x}", 255); // Output: ff
Nel mondo magico di Echoes esiste un potente incantesimo chiamato «EchoSpeak». Questo incantesimo permette ai maghi di comunicare i propri pensieri e le proprie osservazioni attraverso parole pronunciate, che vengono trascritte da piume magiche. Per padroneggiare questo incantesimo, i maghi devono imparare a formulare le proprie parole e i propri pensieri in modo chiaro e conciso, che si tratti di numeri, oggetti o complesse costruzioni magiche.
Il tuo compito di Apprendista Mago è padroneggiare l'arte di EchoSpeak.
Per riuscirci, dovrai imparare a stampare vari tipi di dati magici sulle pergamene incantate.
EchoSpeak funziona prendendo un inchiostro magico speciale, rappresentato dal ByteArray, e incidendo messaggi formattati sulla pergamena usando incantesimi come println! e print!.
Tuttavia, quando si ha a che fare con costruzioni magiche personalizzate come oggetti incantati o incantesimi, EchoSpeak ha bisogno di una formula speciale per capire come rappresentare questi oggetti.
Ed è qui che entra in gioco la tua magia: imparare a implementare incantesimi speciali noti come traits per oggetti magici personalizzati.
A volte i maghi devono formattare le loro parole magiche prima di inciderle sulle pergamene. Scriverai una funzione che formatta tre parole magiche in un unico messaggio.
Implementa una funzione chiamata format_magical_chant che restituisce una stringa formattata nella forma "chant1-chant2-chant3".
Esempio:
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
Il regno di Echoes è pieno di oggetti incantati.
Uno di questi è l'EchoStone, che contiene due attributi magici: power e duration.
Il tuo compito è implementare la funzione stringify_echo_stone, che converte un EchoStone in un ByteArray in un formato speciale "EchoStone [power: x, duration: y]" implementando il trait Display.
Esempio:
let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");
Come apprendista mago, il debug è essenziale per le costruzioni magiche complesse.
Creerai una funzione che stampa un EchoStone per il debug usando il trait Debug.
Il formato dovrebbe essere: "Debugging EchoStone: { power: x, duration: y }".
Esempio:
let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Iscriviti a Exercism per imparare e padroneggiare Cairo con 25 concetti68 esercizi e il mentoring di persone reali, tutto gratis.