Rust · Intermediário · Inglês · Técnico
macro_rules
Forma de definir macros declarativas por casamento de padrões sobre tokens, como ($x:expr) => { ... }. Gera código repetitivo sem escrever uma macro procedural.
Onde usar
Aparece em macros de projeto para reduzir boilerplate. Os erros costumam ser pouco claros, e o cargo expand ajuda a ver o código gerado.
Em código
macro_rules! dobro {
($x:expr) => {
$x * 2
};
}
let a = dobro!(21);
println!("{a}");Exemplos
Write a macro_rules for this pattern.
Escreva um macro_rules para esse padrão.
The macro_rules arm didn't match my input.
O braço do macro_rules não casou com a minha entrada.
Cuidado
Não é função nem substituição de texto: opera sobre tokens, e a higiene evita capturar variáveis locais do chamador por acidente.
Sinônimos
macro declarativa
Antônimos
macro procedural