Article image

FO

Fabio Oliveira08/06/2023 15:37
Compartilhe

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

Compartilhe
Comentários (0)