Imprimir no Cairo permite-te mostrar mensagens ou informação de debug durante a execução do programa.
O Cairo disponibiliza duas macros para imprimir:
println!: Escreve uma mensagem seguida de uma nova linha.print!: Escreve uma mensagem sem uma nova linha.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
Os marcadores {} são substituídos pelos valores fornecidos.
Usa format! para criar um ByteArray sem imprimir de imediato:
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
Para tipos personalizados, implementa Display ou deriva Debug para imprimir:
#[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 inteiros em hexadecimal:
println!("{:x}", 255); // Output: ff
No mundo mágico de Echoes, existe um feitiço poderoso chamado "EchoSpeak". Este feitiço permite aos magos comunicar os seus pensamentos e observações através de palavras faladas, que são escritas por penas mágicas. Para dominar este feitiço, os magos têm de aprender a formular as suas palavras e pensamentos de forma clara e concisa, quer se trate de números, objetos ou construções mágicas complexas.
A tua tarefa como Aprendiz de Mago é dominar a arte do EchoSpeak.
Para isso, tens de aprender a imprimir vários tipos de dados mágicos nos pergaminhos encantados.
O EchoSpeak funciona com uma tinta mágica especial, representada pelo ByteArray, e inscreve mensagens formatadas no pergaminho com feitiços como println! e print!.
No entanto, ao lidar com construções mágicas personalizadas, como itens ou feitiços encantados, o EchoSpeak precisa de um encantamento especial para entender como representar esses objetos.
É aí que entra a tua magia: aprender a implementar feitiços especiais conhecidos como traits para itens mágicos personalizados.
Por vezes, os magos precisam de formatar as suas palavras mágicas antes de as inscrever nos pergaminhos. Vais escrever uma função que formata três palavras mágicas numa única mensagem.
Implementa uma função chamada format_magical_chant que devolve uma string formatada na forma "chant1-chant2-chant3".
Exemplo:
let result = format_magical_chant("Spark", "Shine", "Glow");
assert_eq!(result, "Spark-Shine-Glow");
O reino de Echoes está cheio de itens encantados.
Um desses itens é a EchoStone, que contém dois atributos mágicos: power e duration.
A tua tarefa é implementar a função stringify_echo_stone que converte uma EchoStone num ByteArray num formato especial "EchoStone [power: x, duration: y]", implementando o trait Display.
Exemplo:
let stone = EchoStone { power: 100, duration: 300 };
assert_eq!(stringify(stone), "EchoStone [power: 100, duration: 300]");
Como aprendiz de mago, a depuração é essencial para construções mágicas complexas.
Vais criar uma função que imprime um EchoStone para depuração, usando o trait Debug.
O formato deve ser: "Debugging EchoStone: { power: x, duration: y }".
Exemplo:
let stone = EchoStone { power: 25, duration: 10 };
assert_eq!(format!("{:?}", stone), "Debugging EchoStone: { power: 25, duration: 10 }");
Inscreve-te no Exercism para aprenderes e dominares Cairo com 25 conceitos68 exercícios, e mentoria humana real, tudo grátis.