Как запретить создание переменной внутри функции с тем же именем, что и у переменной уровня класса? - PullRequest
0 голосов
/ 19 марта 2020

Возможно ли на уровне IDE запретить создание переменной внутри функции с тем же именем, если это имя уже определено в этом классе?

...
double _bmi;

String calculateBMI() {
  double _bmi = weight / pow(height / 100, 2);
  ...

1 Ответ

0 голосов
/ 19 марта 2020
double _bmi;

String calculateBMI() {
  double _bmi = weight / pow(height / 100, 2);

Это не будет беспокоить вас, так как первый _bmi доступен только с использованием объекта, тогда как _bmi в функции calcBMI () для этой функции local , поэтому никакая внешняя функция не может доступ _bmi внутри CalculaedBMI ().

ex:

void main() {
  Test obj = Test();
  print(obj.bmi);
  print(obj.temp());
  print(obj.temp2());
}

class Test {
  int bmi = 10;

  int temp() {
    int bmi = 20; //this is local to this function
    return bmi;
  }

  int temp2() {
    return bmi;
  }
}

o/p:
10
20
10    //**see that the class level bmi still holds its value so its unaffected**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...