Dart 3 Records
O Dart 3 introduziu alguns novos recursos interessantes, incluindo padrões, registros e modificadores de classe. Vamos dar uma olhada nos registros.
Conteudo
O que é Registro (Records)?
Imagine um cenário em que você foi retornar vários valores de uma função. Por exemplo, você deseja retornar as informações do aluno de uma função apenas nome e idade, você tem poucas opções. Empacote em lista, mapa ou classe de dados para manter os valores.
Map
Map<String,dynamic> getStudentInformation(){ return {'name':'Alex','age':24} }
Class
class StudentInfo{ final String name; final int age; /// constructor... } StudentInfo getStudentInformation(){ return StudentInfo(name:'Alex',age:24); }
Vamos ver os possíveis problemas com as abordagens acima:
- Map Não é possível garantir todos os valores presentes e nem um tipo seguro.
- Criar uma classe de dados para retornar apenas um valor de uma função pode ser um pouco excessivo e detalhado.
Como os Records funcionam no dart 3?
Com Records, você pode retornar vários valores de uma função. Vamos ver com exemplo de código
(String,int) getStudentInfo(){ return ('Alex',24); }
Você pode acessar esses valores por meio de index.
final studentInfo = getStudentInfo(); final name = studentInfo.$1; final age = studentInfo.$2;
O código carece de legibilidade, pois não está claro qual valor corresponde a quê, tornando-o problemático.
Aí vem a desestruturação e retorno de valores nomeados para resolver esse problema.
Desestruturando
Com a desestruturação, agora você pode extrair valores de retorno em variáveis separadas.
final (name,age) = getStudentInfo(); print(name); print(age);
Valores nomeados
Como o nome indica, você pode acessar através da nomenclatura do valor.
({String name,int age}) getStudentInfo(){ return (name:'Alex',age:'24'); } final stu= getStudentInfo(); print(stu.name); print(stu.age);
Neste artigo, fizemos uma abordagem prática sobre registros em Dart. Vimos como criar registros, como acessar os campos em um registro e como usar registros em funções.
Isso é tudo para estes artigos. Espero que seja útil para todos.