ExpertiDict

Rust · Intermediário · Inglês · Técnico

macro_rules

/ˈmækroʊ ruːlz/substantivo

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

Veja também

Todos os termos de Rust