нужно указывать ключевое слово this или не нужно?

Нужно указывать ключевое слово this или не нужно? Подскажите. Спасибо.

void main() {
 Atom a = Atom(10, 20);
 print(a.f1());
 print(a.f2());
}

class Atom {
 int x;
 int y;
 int z = 100;

 Atom(this.x, this.y);

 int f1() {
  return x + y + z;
 }

 int f2() {
  //нужно указывать ключевое слово this или не нужно?
  return this.x + this.y + this.z;
 }
}

ответ

130 130


Ответы (1 шт):

Автор решения: Vladimir Afanasyev

Если вы в рамках функции не работаете с другими значениями, передаваемыми в качестве параметров или объявляемых внутри функции, но с идентичным названием, то f1() от f2() отличатся у вас не будет.

То есть this вам нужен только как указатель на объект и однозначного указателя на поле конструкцией this.value, к которому вы применяете функцию:

a.f2(1, 2, 3);
int f2(int x, int y, int z) {
  //нужно указывать ключевое слово this или не нужно?
  return x + y + z;
}

#6

и

a.f2(1, 2, 3);
int f2(int x, int y, int z) {
   //нужно указывать ключевое слово this или не нужно?
   return this.x + x + this.y + y + this.z + z;
}

#136
→ Ссылка