ExpertiDict

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

guarda de match

/ˈɡwaʁ.dɐ d͡ʒi ˈmɛt͡ʃ/substantivo

Condição if adicionada a um braço do match para refinar o padrão. O braço só é escolhido se o padrão casar e a condição for verdadeira.

Onde usar

Aparece quando o padrão sozinho não basta, como para comparar faixas ou usar outra variável. O compilador ignora a guarda na checagem de exaustividade.

Em código

let n = 7;
match n {
  x if x % 2 == 0 => println!("par"),
  x if x > 5 => println!("grande"),
  _ => println!("outro"),
}

Exemplos

Coloque uma guarda de match para tratar só números pares.

Faltou um braço padrão depois das guardas.

Cuidado

Por isso pode ser preciso um braço genérico no final, mesmo que as guardas pareçam cobrir tudo.

Sinônimos

match guard

Veja também

Todos os termos de Rust