La impresión en Cairo te permite mostrar mensajes o información de depuración durante la ejecución del programa.
Cairo ofrece dos macros para imprimir:
println!: Imprime un mensaje seguido de un salto de línea.print!: Imprime un mensaje sin un salto de línea.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
Los marcadores de posición {} se reemplazan con los valores proporcionados.
Usa format! para crear un ByteArray sin imprimirlo de inmediato:
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
Para los tipos personalizados, implementa Display o deriva Debug para poder 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 los Ecos, existe un poderoso hechizo llamado "EchoSpeak". Este hechizo permite a los magos comunicar sus pensamientos y observaciones mediante palabras habladas, que son escritas por plumas mágicas. Para dominar este hechizo, los magos deben aprender a formular sus palabras y 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.
Esto requiere que aprendas a imprimir varios 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 usando hechizos como println! y print!.
Sin embargo, cuando se trata de construcciones mágicas personalizadas como objetos encantados o hechizos, EchoSpeak necesita un encantamiento especial para entender cómo representar estos 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 dar formato a sus palabras mágicas antes de inscribirlas en pergaminos. Escribirás una función que da formato a tres palabras mágicas en un solo mensaje.
Implementa una función llamada format_magical_chant que devuelve un string formateado con la forma "canto1-canto2-canto3".
Ejemplo:
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
El reino de los Ecos está lleno de objetos encantados.
Uno de esos objetos es EchoStone, que contiene dos atributos mágicos: poder y duración.
Tu tarea es implementar la función stringify_echo_stone, que convierte un EchoStone en un ByteArray con un 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 construcciones mágicas complejas.
Crearás una función que imprime un EchoStone para depuración 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.