Actionscript дубликат определения переменных - PullRequest
1 голос
/ 23 февраля 2010
if(true) {
  var a:int = 1;
}
else {
  var a:int = 2;
}

В приведенном выше коде ActionScript я получаю двойное определение переменной
ошибка, потому что "a" был объявлен дважды.
Но разве «а» не существует в двух «разных» областях?

Есть ли элегантный способ убрать это предупреждение, скорее
чем вытащить «а» из обеих областей и вывести его за пределы
блок if?

Мне нужно это альтернативное решение, поскольку оно слишком много мест
в коде, который я должен рефакторинг.

Ответы [ 4 ]

4 голосов
/ 23 февраля 2010

Нет, как и в JavaScript, ActionScript имеет только одну возможную область видимости - функцию. {} не создает новую область, только function() {} создает.

3 голосов
/ 23 февраля 2010

Да, все, что вам нужно сделать, это

if(true) {
  var a:int = 1;
}else {
  a= 2;
}

и ваша ошибка исчезнет

0 голосов
/ 04 декабря 2011

Вы должны всегда объявлять свои переменные перед вызовом их внутри функции, всегда более безопасный способ написания кода без ошибок дублирования.

var a:int;

if(true) {
  a= 1;
}
else {
  a= 2;
}

Удачи

0 голосов
/ 23 февраля 2010

Нет элегантного решения, кроме извлечения переменной или повторного обращения к переменной, а не ее объявления.

Проверьте и этот ответ:

хочу удалить предупреждения:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...