Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   область видимости переменной, объявленной в цикле for (http://www.flasher.ru/forum/showthread.php?t=161147)

zxcv 21.07.2011 10:16

область видимости переменной, объявленной в цикле for
 
пишу цикл
Код AS3:

for (var i:int = 0; i < 5; i++)...

все отлично. Если же следом за этим циклом объявить второй такой же, то компилятор начинает ругаться на то, што переменная i уже объявлена. Это же ненормально? ))

goodguy 21.07.2011 10:22

Для ас3 нормально. Переменная будет видна во всем теле функции после ее объявления.
Нужно ее просто объявить ввыше всех циклов и использовать дальше без ругачек компилятора )
Код AS3:

var i:int;
for (i = 0; i < 5; i++)...


zxcv 21.07.2011 11:04

понятно, спасибо )

КорДум 21.07.2011 13:14

Компилятор выносит все объявления из условий-циклов. Так, например, конструкция
Код AS3:

if (!true) var a:int = 10;
else a = 20;
trace(a);

скомпилируется и выдаст 20. Хотя переменная А не объявлена в условии. И, конечно же, мы получим warning, если объявим ее в обоих ветках условия.

expl 21.07.2011 14:11

Цитата:

Это же ненормально? ))
Это ненормально, зато по стандарту ECMA
В C#, haxe, ActionScript 2 на mtasc, C++ такого нет


Часовой пояс GMT +4, время: 04:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.