Caderneta Dart - Syntax Sugar Construtor 2023
- #Flutter
- #Dart
Minhas Anotações
class Yanu{
late String nome;
int? idade;
String? sexo;
String? religiao;
// () parâmetros posicionais obrigatórios - construtor comum
Yanu.a(this.nome, this.idade);
// ([]) parâmetro posicionais opcional
//OBS: construtores posicionais opcional por não serem obrigatórios exigem que os atributos nullable.
//OBS: os atributos posicional opcionais sempre seguiram em ordem crescente do construtor, na falta de um ou dois deixara sempre os últimos de existirem, como evidenciado no falha intencional do objeto criado.
Yanu.b(this.nome, [this.sexo, this.religiao]);
// ({}) construtor nomeado opcionais(nullable) uso de chaves ({}) e : na criação do objeto .
//OBS: construtores nomeados opcionais exigem que os atributos nullable.
//OBS2: se não forem todos apenas os últimos atributos podem ser classificados nomeados obrigatórios pois os demais são posicionais.
//OBS: podemos observar que nos construtores nomeados não importa a ordem mesmo quando o objeto é criado, já que os atributos não seguem uma ordem e sim são invocados pelo próprio nome.
Yanu.c(this.nome, {this.religiao, this.idade});
//({required}) parâmetros nomeados obrigatorios
//OBS: Caso um atributo seja marcado como required e não seja dado um valor a ele quando o objeto é criado mostrará erro logo de imediato no objeto, tente remover uma para verificar.
Yanu.d(this.nome, {required this.idade, this.sexo, required this.religiao});
}
void main(){
//construtor comum
var doxes = Yanu.a('Ivac', 68);
//construtor nomeado obrigatório usado de chaves {} e : .
var doxes2 = Yanu.b('Coles', 'Catolico');
// ({}) construtor nomeado opcionais(nullable) uso de chaves ({}) e : na criação do objeto para definir o atributo .
var doxes3 = Yanu.c('Magno', idade:34, religiao:'Islamita');
//({required}) parâmetros nomeados obrigatrios
var doxes4 = Yanu.d('Vager', idade:25, sexo:'Feminino', religiao:'Candoble');
//yanu.a
print('Yanu');
print('Nome: ${doxes.nome}');
print('Idade: ${doxes.idade}');
print('Sexo: ${doxes.sexo}');
print('Religião: ${doxes.religiao}');
print('');
//yanu.b
print('Yanu.2');
print('Nome: ${doxes2.nome}');
print('Idade: ${doxes2.idade}');
print('Sexo: ${doxes2.sexo}');
print('Religião: ${doxes2.religiao}');
print('');
//yanu.c
print('Yanu.3');
print('Nome: ${doxes3.nome}');
print('Idade: ${doxes3.idade}');
print('Sexo: ${doxes3.sexo}');
print('Religião: ${doxes3.religiao}');
print('');
//yanu.d
print('Yanu.4');
print('Nome: ${doxes4.nome}');
print('Idade: ${doxes4.idade}');
print('Sexo: ${doxes4.sexo}');
print('Religião: ${doxes4.religiao}');
}
>>>>SAIDA
Console
Yanu
Nome: Ivac
Idade: 68
Sexo: null
Religião: null
Yanu.2
Nome: Coles
Idade: null
Sexo: Catolico
Religião: null
Yanu.3
Nome: Magno
Idade: 34
Sexo: null
Religião: Islamita
Yanu.4
Nome: Vager
Idade: 25
Sexo: Feminino
Religião: Candoble