DEV Community

Toshi Ossada for flutterbrasil

Posted on

Multiplos retornos no Flutter/DART com os Records

No último dia 10 de maio, ocorreu o Google IO, obviamente não foi um evento voltado para (somente) programação e sim um evento que anuncia todos os seus próximos lançamentos como o Bard, Pixel Tablet, Pixel Fold, Pixel Watch. etc.

Claro todos estávamos ansiosos com o lançamento do Dart 3 que foi anunciado em janeiro no Flutter Forward, e foi exatamente isso que aconteceu, Dart 3 na Stable junto com a vinda do Flutter 3.10, muitos acabaram se decepcionando pois estavam com expectativas muito elevadas achando que viria novidade, mas as novidades eram as que foram anunciadas no Flutter Forward.

Uma das features que eu particularmente estava aguardando é a possibilidade de sua função conseguir retornar mais de um valor, e isso hoje é possível aos records.

Basicamente é só colocar os tipos dos retornos entre parênteses e receber nas variáveis, também em parênteses, descontruindo os retornos

No retorno ao invés de receber em várias variáveis posso também receber em apenas uma e acessar de forma posicional.

Também conseguimos passar o retorno de forma nomeada, basta colocar o nome do retorno na frente do tipo do dado

Caso queiramos ignorar alguns dos retornos basta usar o underline como nome da variável de retorno

Com isso podemos fazer tratamento de erros que nem é de costume fazer em algumas linguagens como o Go Lang de retornar um Erro ou o valor da função e depois de retornarmos validamos se o erro foi retornado

A dúvida de muitos será, isso substitui o DartZ? E a resposta é depende, se utiliza o DartZ apenas para retornar dois valores sim, entretanto o DartZ tem muitas outras features que nos auxiliam no desenvolvimento.

Muito bacana essa nova funcionalidade no Dart 3 né? Pode não parecer grande coisa, mas eu, que trabalhei com linguagens que tinham essa possibilidade, posso te garantir que ajuda bastante. Além do mais os records possibilitaram outras features mais interessantes como os Destructuring e os records patterns que iremos ver nos proximos artigos :)

Tem vários exemplos em meu github https://github.com/toshiossada Dê uma olhada e deixe suas estrelinhas! :)

Image description

Entre em nosso discord para interagir com a comunidade: flutterbrasil.com.br

Top comments (0)