Rust · Essencial · Inglês · Técnico
macro
Código que escreve código em tempo de compilação. As macros de uso comum terminam com !, como println! e vec!, e aceitam um número variável de argumentos.
Onde usar
Aparece em println!, vec!, assert_eq! e format!, e também como macros declarativas (macro_rules!) e procedurais (derive). Os erros de macro costumam ser mais difíceis de ler.
Em código
let v = vec![1, 2, 3];
println!("{:?}", v);
assert_eq!(v.len(), 3);
// o ! indica que é uma macroExemplos
That's a macro, you can tell by the exclamation mark.
Isso é uma macro, dá para notar pelo ponto de exclamação.
Use a macro to avoid repeating the boilerplate.
Use uma macro para não repetir o boilerplate.
Cuidado
Não é função: a macro recebe tokens, não valores, e é expandida antes da checagem de tipos.
Sinônimos
macro!
Antônimos
função
Origem
Do grego makros, 'grande': uma instrução que se expande em várias.