Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Экземпляр класса (http://www.flasher.ru/forum/showthread.php?t=90858)

etc 20.01.2007 15:42

Имелось ввиду без типизации. Без типизации, кстати, ещё хуже, чем с такой.

CorC 20.01.2007 15:52

но зато присваивание хуже будет проходить, если тип не будет в точности равен установленному,
хотя это и правильно, но что то я уже привык из числа строку получать...
надо бы отвыкать :)

Kikasso 20.01.2007 16:06

Цитата:

Сообщение от __etc
Имелось ввиду без типизации. Без типизации, кстати, ещё хуже, чем с такой.

Чем лучше-то? Что оно будет проверять?
Код:

var mySomeThing:Object = 1;
mySomeThing = function(){};
mySomeThing = "";


etc 20.01.2007 16:08

Ты имеешь права так делать только в AS1.

Проверять, оно, конечно ничего не будет, т.к. всё — наследники Object.

Kikasso 20.01.2007 16:27

Цитата:

Сообщение от __etc
Ты имеешь права так делать только в AS1.
Проверять, оно, конечно ничего не будет, т.к. всё — наследники Object.

Я так не пишу, я просто смоделировал "боевую ситуацию".
Вопрос остался - если проверять не будет, чем лучше?

etc 20.01.2007 16:35

Наличием знания у автора, что есть такая штука, как типизация.

pkfun 20.01.2007 16:50

Думаю, это лучше тем, что осознанно создавая такой объект(осознанно это подписывая к нему тип Object), вы для себя уже помечаете, что, мол, есть проблемный объект, который может вызвать скрытый сбой( без сообщения компилятора). И если у вас программа ведет себя непонятно, то вероятнее всего вы сначала проверите именно этот объект.
Потому что, если мы используем типизацию, то такой код:
Код:

var myObj:Number
trace(myObj.nextFrame());

выдаст такую ошибку:
Цитата:

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 2: There is no method with the name 'nextFrame'.
trace(myObj.nextFrame());
А такой:
Код:

var myObj:Object
trace(myObj.nextFrame());

просто напишет undefined.

etc 20.01.2007 16:52

Тип Object присваивается для указания того, что это данные не простого типа (Number, String, Boolean), а всё-таки объект с заданными свойствами. Если не указывать вообще, то хрен его знает, что это такое, объект, число, строка, булево значение или ещё что-нибудь.

Kikasso 20.01.2007 16:54

Это придирки.
Если у меня есть проблеммный объект, я его помечаю примерно так
////////!!!!!!!!!!!!!!!!!!///////////
так по-моему проще заметить, а набрав в поиске !!! найти
Но я понимаю вашу позицию.

Kikasso 20.01.2007 16:58

Цитата:

Сообщение от __etc
Тип Object присваивается для указания того, что это данные не простого типа (Number, String, Boolean), а всё-таки объект с заданными свойствами. Если не указывать вообще, то хрен его знает, что это такое, объект, число, строка, булево значение или ещё что-нибудь.

Как раз присваивая тип Object мы и говорим что это хрен знает что такое.
Так что можно не позорится и не присваивать ничего вообще.
На скорость не влияет, на обработку ошибок тоже.


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

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