Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Есть ли разница в оформлении кода? (http://www.flasher.ru/forum/showthread.php?t=128127)

wer32 31.07.2009 02:26

Есть ли разница в оформлении кода?
 
сабж

Код AS3:

package{
    class A{
          private var testVar:Array;
 
          public function A(){
                  testVar = new Array();
          }
    }
}

Код AS3:

package{
    class A{
          private var testVar:Array = new Array();
 
          public function A(){
          }
    }
}

кто как использует? Есть ли разница?

alekslitvinenk 31.07.2009 05:38

Разницы нету, инициалицация нестатичечких переменных класса все-равно осуществляеться в конструкторе...

bebop 31.07.2009 09:55

А у меня была разница, как ни странно. В игре были какие-то совершенно непонятные баги из-за использования второго варианта, пришлось от него отказаться.

Или что, приглючилось?

UPD: А, да, точно. Это был AS2.

marat_sa 31.07.2009 10:04

В AS2 - при компиляции mtasc'ом второй вариант точно не прокатывал - именно для сложных типов данных.
В AS3 - не знаю, но создаю всегда в конструкторе новые переменные - так удобнее.

Geba 31.07.2009 12:01

А я оформляю согласно Flex SDK coding conventions and best practices, перевод здесь, а там сказано, что
Цитата:

If a variable needs to be initialized to a non-default value, do this in the declaration, not in the constructor.
То есть инициализировать переменные при объявлении, а не в конструкторе. Плюс в случае объявления массивов следует указывать их тип в комменте, например в Вашем случае
Код AS3:

private var testVar:Array/* of Number */ = [];


Snut 31.07.2009 13:25

Код AS3:

private var testVar:Array/* of Number */ = [];

а если у меня там разные вещи могут быть?) чего писать? /*something*/ ?))

DarkLight 31.07.2009 13:42

Я пишу /*of Object*/ или /*of Object(MyType1,MyType2)*/, если известно все, что может быть в массиве.

udaaff 31.07.2009 14:12

Цитата:

Сообщение от bebop (Сообщение 839474)
UPD: А, да, точно. Это был AS2.

В AS2 баг был с этим связанный. Насколько я помню, если объявлять массив или объект вне конструктора, и затем изменять значение массива из какого-то экземпляра, то он в прототипе менялся. Не создавалась копия массива.

upd: не объявлять, в смысле, а присваивать начальное значение.

AlexDesinger 31.07.2009 14:16

опа, а я всегда везде первый вариант использую....но по-моему все равботает, как я задумывал....мне первый вариант кажется более удобным и понятным....а сейчас выходит, что типа не правильно?

udaaff 31.07.2009 14:20

Цитата:

Сообщение от AlexDesinger (Сообщение 839547)
опа, а я всегда везде первый вариант использую....но по-моему все равботает, как я задумывал....мне первый вариант кажется более удобным и понятным....а сейчас выходит, что типа не правильно?

В AS2 первый вариант использовать надо.


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

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