A impressão em Cairo permite que você exiba mensagens ou informações de depuração durante a execução do programa.
Cairo fornece duas macros para impressão:
println!: Exibe uma mensagem seguida de uma nova linha.print!: Exibe uma mensagem sem uma nova linha.println!("Hello, Cairo!");
println!("x = {}, y = {}", 10, 20);
Os placeholders {} são substituídos pelos valores fornecidos.
Use format! para criar um ByteArray sem imprimir imediatamente:
let result = format!("{}-{}-{}", "tic", "tac", "toe");
println!("{}", result); // Output: tic-tac-toe
Para tipos personalizados, implemente Display ou derive Debug para impressão:
#[derive(Debug)]
struct Point { x: u8, y: u8 }
let p = Point { x: 3, y: 4 };
println!("{:?}", p); // Debug output: Point { x: 3, y: 4 }
Use {:x} para imprimir inteiros em hexadecimal:
println!("{:x}", 255); // Output: ff
No mundo mágico de Echoes, existe um feitiço poderoso chamado "EchoSpeak". Esse feitiço permite que os magos comuniquem seus pensamentos e observações por meio de palavras faladas, que são escritas por penas mágicas. Para dominar esse feitiço, os magos precisam aprender a formular suas palavras e pensamentos de forma clara e concisa, seja sobre números, objetos ou construções mágicas complexas.
Sua tarefa como Aprendiz de Mago é dominar a arte do EchoSpeak.
Para isso, você vai aprender a imprimir vários tipos de dados mágicos nos pergaminhos encantados.
O EchoSpeak funciona pegando uma tinta mágica especial, representada pelo ByteArray, e inscrevendo mensagens formatadas no pergaminho com feitiços como println! e print!.
Porém, ao lidar com construções mágicas personalizadas, como itens encantados ou feitiços, o EchoSpeak precisa de uma encantação especial para entender como representar esses objetos.
É aí que entra a sua magia: aprender a implementar feitiços especiais conhecidos como traits para itens mágicos personalizados.
Às vezes, os magos precisam formatar suas palavras mágicas antes de inscrevê-las nos pergaminhos. Você vai escrever uma função que formata três palavras mágicas em uma única mensagem.
Implemente uma função chamada format_magical_chant que retorna uma string formatada no formato "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 tem dois atributos mágicos: poder e duração.
Sua tarefa é implementar a função stringify_echo_stone, que converte uma EchoStone em um ByteArray em um 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, depurar é essencial para construções mágicas complexas.
Você vai criar uma função que imprime uma 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 }");
Crie sua conta no Exercism para aprender e dominar Cairo com 25 conceitos68 exercícios e mentoria humana de verdade, tudo de graça.