O uso do if case no Dart

13 ago. 2025

if case no Dart

O if case no Dart é um recurso introduzido para facilitar a combinação de condições com pattern matching (casamento de padrões), permitindo checar e extrair informações de uma variável diretamente dentro da estrutura do if.

Isso deixa o código mais elegante e seguro quando você precisa testar se um valor corresponde a determinado padrão e, caso corresponda, obter variáveis desse padrão para usar dentro do bloco if.


Sintaxe Básica

if (variavel case Padrão) {
// Bloco executado se a variável se encaixar no padrão
}

Exemplo Prático

Imagine que você tem uma lista com dois inteiros e quer garantir isso, além de extrair esses valores:

if (par case [int x, int y]) {
print('É um par de inteiros: $x e $y');
} else {
print('Não é um par de inteiros válido');
}

No exemplo acima:

  • O if testa se par é uma lista de dois inteiros.
  • Se for, as variáveis x e y são criadas automaticamente e ficam disponíveis dentro do bloco.

Guard Clauses (Cláusulas de Guarda)

Você pode adicionar uma condição extra usando when:

if (par case [int x, int y] when x > 0 && y > 0) {
print('Ambos são positivos');
}

Assim, além de casar o padrão, só executa se a condição especificada em when for verdadeira.


Diferença para switch/case

  • O if case testa um padrão específico, enquanto o switch/case pode verificar vários padrões ao mesmo tempo.
  • if case é útil para checagens rápidas e extração de valores quando interessa apenas um caso.

Quando usar?

Use o if case quando:

  • Precisa checar se um valor tem determinado formato ou tipo.
  • Quer extrair variáveis desse padrão automaticamente.
  • Deseja deixar o código mais enxuto do que com vários if/else ou switch, especialmente para padrões mais complexos.

Resumo

  • if case aumenta o poder das condições no Dart com pattern matching.
  • É muito útil com listas, enums, classes, etc.
  • Permite criar variáveis automaticamente ao mesmo tempo em que checa padrões.
  • Ajuda a evitar muitos if/else aninhados e deixa o código mais legível.

✎ Morpa