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 separ
é uma lista de dois inteiros. - Se for, as variáveis
x
ey
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 oswitch/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
ouswitch
, 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