O Dart 3 nos trouxe muitas novidades incríveis, e já abordei de algumas por aqui, um recurso muito legal foi o que denominamos de Switch Expressions.
A forma tradicional do Dart é utilizarmos o switch statement que é uma forma imperativa e procedural que estamFos acostumados.
Note que, da forma antiga, com a Switch Statement não temos a capacidade de retornar diretamente o valor à variável, com a nova maneira utilizando Switch Expression traz uma importante mudança de introduzir aspectos da programação funcional para o Dart trazendo a linguagem mais flexibilidade e poder.
Um dos principais avanços das Switch Expressions no Dart 3 é a adoção de uma sintaxe similar às arrow arrow functions para mapear os cases diretamente ao valor de saída. Isso melhora a legibilidade do código e o torna menos propenso a erros.
Note que o default foi substituído apenas pelo _ (underline). Podemos melhorar ainda mais nosso código da seguinte forma:
Pattern Matching
Outro recurso bastante interessante é o Pattern Matching, com ele você pode desestruturar um objeto complexo ao mesmo tempo em que está validando uma condição e utilizar esses valores dentro da condição, no Dart 3 você pode utilizar o Pattern Matching dentro de suas condições switchs.
Veja no exemplo a seguir:
Guard Clauses
Como mostrei em artigos no Dart 3 temos os records, agora conseguimos usar os pattern matching em conjunto com os records, essa poderosa junção permite com que possamos desestruturar dados e executar uma condição nos dados desestruturados, utilizando a palavra reservada when para especificar a condição.
Sendo que os valores também podem ser providos de uma função.
Com toda certeza essas novas features deixam o Dart cada vez mais com uma cara de programação funcional, o Dart vem trazendo o que há de melhor da programação funcional e imperativa deixando o código mais legível, eficiente e testável
Entre em nosso discord para interagir com a comunidade: flutterbrasil.com.br
Top comments (0)