ExpertiDict

Rust · Essencial · Inglês · Técnico

macro

/ˈmækroʊ/substantivo

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 macro

Exemplos

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.

Veja também

Todos os termos de Rust