Fiz o exercício tentando deixar o bool estaAutenticada validando com base na idade. Se a idade for igual ou maior que 18 ela deverá ficar como true e etc. Tentei fazer de duas maneiras mas não compreendi muito bem por que não funcionou. Vocês podem me ajudar?
Opção 1
void main(){
Pessoa Pessoa1 = Pessoa('Thiago', 32);
print(Pessoa1.toMap());
}
class Pessoa{
String nome;
int idade;
bool estaAutenticada = idade>=18;
Pessoa(this.nome, this.idade);
Map<String,dynamic> toMap(){
Map<String, dynamic> dados = {};
dados['Nome'] = nome;
dados['Idade'] = idade;
dados['Esta Autenticada'] = estaAutenticada;
return dados;
}
}
Opção 2
void main(){
Pessoa Pessoa1 = Pessoa('Thiago', 32);
print(Pessoa1.toMap());
}
class Pessoa{
String nome;
int idade;
bool? estaAutenticada;
if(idade>=18){
estaAutenticada=true;
}else{
estaAutenticada=false;
}
Pessoa(this.nome, this.idade);
Map<String,dynamic> toMap(){
Map<String, dynamic> dados = {};
dados['Nome'] = nome;
dados['Idade'] = idade;
dados['Esta Autenticada'] = estaAutenticada;
return dados;
}
}
no fim das contas, acabei resolvendo meu problema com este código:
void main(){
Pessoa Pessoa1 = Pessoa('Thiago', 32);
print(Pessoa1.toMap());
}
class Pessoa{
String nome;
int idade;
Pessoa(this.nome, this.idade);
Map<String,dynamic> toMap(){
Map<String, dynamic> dados = {};
dados['Nome'] = nome;
dados['Idade'] = idade;
dados['Esta Autenticada'] = idade>=18;
return dados;
}
}
mas gostaria muito de entender melhor por que os outros 2 primeiros não funcionaram. Sei que tem a ver com o uso do inteiro "idade" mas não compreendo pq não posso fazer desse jeito.