Olá, Álvaro! Tudo bem?
Primeiramente, peço desculpas pela demora em dar um retorno.
Muito legal sua observação! Usamos o this
quando queremos informar ao nosso código que estamos referenciando uma variável/atributo da própria classe.
Imagine que no exemplo dessa mesma tarefa nós recebemos uma variável chamada nome
na nossa função toMap
mas estamos usando this.nome
:
Map<String, dynamic> toMap(String nome) {
Map<String, dynamic> resultado = {};
resultado["nome"] = this.nome;
resultado["idade"] = idade;
resultado["estaAutenticada"] = estaAutenticada;
return resultado;
}
Nessa situação, passamos a variável nome
mas ela não está sendo usada no nosso toMap
, pois *estamos usando o this.nome
, referenciando a variável da própria classe. *
E se usássemos apenas nome
nesse exemplo?
Map<String, dynamic> toMap(String nome) {
Map<String, dynamic> resultado = {};
resultado["nome"] = nome;
resultado["idade"] = idade;
resultado["estaAutenticada"] = estaAutenticada;
return resultado;
}
Nessa situação, o valor utilizado seria o passado por parâmetro (que possui mesma identificação), não o da classe, então esse valor é que seria utilizado dentro de toMap
.
Abaixo cada caso exemplificado:
void main() {
Pessoa pessoa = Pessoa("Ramon", 27, true);
print(pessoa.toMap("teste"));
}
- A saída desse exemplo usando o
this.nome
seria:
{nome: Ramon, idade: 27, estaAutenticada: true}
- E usando apenas
nome
seria:
{nome: teste, idade: 27, estaAutenticada: true}
.
Concluindo, nesse exemplo que você mandou, especificamente, não seria tão necessário usar o this
, inclusive o flutter dá um aviso sobre isso (Don't access members with
thisunless avoiding shadowing.
), mas em outros casos é importante se atentar a isso.
Espero ter te ajudado. Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado. ✓