![]() |
Как получить тип переменной?
Думаю я далеко не первый кто такое спрашивает >_<
1) Нужно получить тип переменной(переменная еще не содержит значение) 2) Присвоить этой же переменной новое значение на основе полученного типа: Код AS3:
Код AS3:
Как получить заветный тип? Ну и далее по пункту 2, как такое делается? |
Только объект может иметь какой-либо тип. Т.о. вы проверили тип объекта по ссылке.
|
Цитата:
Код AS3:
|
Код AS3:
|
Код AS3:
|
Цитата:
Код AS3:
Код AS3:
Цитата:
Тут конечно можно сказать, мол сразу давай всем своим переменным значения и не мучайся. Но зачем мне иметь эти переменные тогда, когда они фактические еще нигде не используются? Вот и чтобы избавится от копипаста одинаковых проверок, решено было вынести подобный алгоритм в отдельную функцию, которая(спасибо за инфу о нужных функциях) примерно выглядит вот так: Код AS3:
Код AS3:
|
У вас код
Код AS3:
Смотрите, что вы делаете: вначале пишете Код AS3:
Меняйте логику работы. Например, напишите геттер и везде используйте его, а не поле класса: Код AS3:
|
Zolza, может я опять что-то не совсем так понял, но для таких целей в АС3 есть звездочка * (wildcard).
т.е., создаем переменную без типа: Код AS3:
|
если классы ваши собственные а не нативные, то можете переопределить метод toString() и выводить то что вам угодно.. так же есть оператор проверки типа "is" (myValue is Sprite)
|
Вместо
Код AS3:
Код AS3:
Вообще, думаю, что подход неверен. Почитайте про пул объектов. Как раз то, что вам нужно. |
Я бы предложил такое:
Код AS3:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
|
Nooob
Null тк преобразование неудачное. Нельзя экземпляр класса в строку преобразовывать. Для этого есть toString(). Zolza typeOf - как уже сказали - оператор, он различает всего 12 типов данных. Вы тут обсуждает как "правильно" писать быдлокод? Пытаетесь переложить функцию определения типа данных на компилятор? Почему бы не ввести новый тип данных, вроде псевдо булевских переменных, или что-то из "стохастического программирования"? Не хотел бы я разбираться в Вашем коде. Пока не отработал конструктор - нет никакого класса. В коде, опледеление типа нужно только для того чтоб компилятор работал как надо, чтоб не тратить часы на RTE. Не нравятся типизированные переменные, пользуйтесь нетипизированными (динамическими). (как вариант храните тип в имени переменной) |
S-ed, какой быдлокод, какое стахановское программирование?
|
Цитата:
|
Zolza
Вы хотели пул объектов без самих объектов. Вот через Object: Код AS3:
Код:
myVariableNum_1 = [object Sprite] |
goodguy - Object, Dictionary и Array - ассоциативные массивы.
А вообще по-моему автору надо писать Код AS3:
|
-De-
Вы взяли код из #6? =) "Человеку" хочется чтоб он мог отличить var2 от var1 когда передает их в функцию. |
Цитата:
Цитата:
|
Из #12 =)
Ему (как я понял) хочется гарантировать, что нужные переменные инициализированы, для чего он хочет написать функцию checkObj, в которую передавать эти самые переменные, чтоб там посмотрели, что там с этими переменными и проинитили, если надо. Неудобный подход. Ещё можно попробовать группировать такие проверки. Типа инит-с-проверкой-1, инит-с-проверкой-2 итд. В них садить эти if(!var2) И рекомендуется четко представлять типичные (а лучше все) сценарии инициализации и как именно получается выгода от того, что не инитится тупо всё сразу, из этого обычно можно придумать подход лучше. PS: Пул по-моему тут не в кассу, потому что в одном пуле сидят обьекты одного типа. |
-De-
Object - динамический класс, можно пихать любые переменные. Код AS3:
Код:
myVariableNum_3 = [object MovieClip] |
Дык. Это к чему?
|
Цитата:
|
| Часовой пояс GMT +4, время: 14:50. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.