Imprimir en Cairo te permite mostrar mensajes o información de depuración durante la ejecución del programa.
Cairo proporciona dos macros para imprimir:
println!: muestra un mensaje seguido de un salto de línea.print!: muestra un mensaje sin un salto de línea.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
Los marcadores de posición {} se sustituyen por los valores proporcionados.
Usa format! para crear un ByteArray sin imprimirlo inmediatamente:
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
Para los tipos personalizados, implementa Display o deriva Debug para imprimirlos:
#[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} para imprimir números enteros en hexadecimal:
println!("{:x}", 255); // Output: ff
En el mundo mágico de Echoes existe un poderoso hechizo llamado «EchoSpeak». Este hechizo permite a los magos comunicar sus pensamientos y observaciones mediante palabras habladas, que unas plumas mágicas se encargan de escribir. Para dominar este hechizo, los magos deben aprender a formular sus palabras y sus pensamientos de forma clara y concisa, ya sea sobre números, objetos o complejas construcciones mágicas.
Tu tarea como aprendiz de mago es dominar el arte de EchoSpeak.
Para ello tendrás que aprender a imprimir distintos tipos de datos mágicos en los pergaminos encantados.
EchoSpeak funciona tomando una tinta mágica especial, representada por el ByteArray, e inscribiendo mensajes formateados en el pergamino mediante hechizos como println! y print!.
Sin embargo, cuando se trata de construcciones mágicas personalizadas, como objetos o hechizos encantados, EchoSpeak necesita un conjuro especial para entender cómo representar esos objetos.
Ahí es donde entra tu magia: aprender a implementar hechizos especiales conocidos como traits para objetos mágicos personalizados.
A veces, los magos necesitan formatear sus palabras mágicas antes de inscribirlas en los pergaminos. Escribirás una función que formatee tres palabras mágicas en un único mensaje.
Implementa una función llamada format_magical_chant que devuelva un string con la forma «chant1-chant2-chant3».
Ejemplo:
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
El reino de Echoes está lleno de objetos encantados.
Uno de ellos es la EchoStone, que contiene dos atributos mágicos: poder y duración.
Tu tarea es implementar la función stringify_echo_stone, que convierte una EchoStone en un ByteArray con el formato especial "EchoStone [power: x, duration: y]" implementando el trait Display.
Ejemplo:
let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");
Como aprendiz de mago, depurar es esencial para las construcciones mágicas complejas.
Crearás una función que imprima una EchoStone para depurarla usando el trait Debug.
El formato debe ser: "Debugging EchoStone: { power: x, duration: y }".
Ejemplo:
let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Regístrate en Exercism para aprender y dominar Cairo con 25 conceptos68 ejercicios y mentoría humana real, todo gratis.