![]() |
Как отличить int от Number
Код:
var a:int = 2; |
Код:
var a:int = 2; |
Код:
var a:Number = 2; |
Есть одна шальная идея, правда работает вроде, но не "не зависимо от значения, присвоенного переменной"
Код:
var i:int = 2; // эту переменную надо проверитьКод:
var i:Number = 2; |
Цитата:
Код:
var a:Number = 2; |
Естесственно, а что были сомнения? Мы же сравниваем тип аргументов, а не переменных =) я специально в примере подставил int вместо Number, чтобы такого вопроса не возникло.
т.е. trace(checkInt(a, a)); и trace(checkInt(b, b)); тоже выдадут false |
А вопрос был в определении именно типа переменной ;)
|
Ну, тогда только describeType =) uint, int и Number взаимозаменимы и всегда берутся по значению, так что если значение одинаковое, то и переменные будут одинаковыми... поэтому и
Код:
var a:Number = 2; |
Наверное это оптимизация AS3/FlashPlayer 9.
|
Цитата:
|
Код:
var a:Number = 2; |
Код:
var a:Number = Number.MAX_VALUE; |
Код:
var a:Number =Number.MAX_VALUE; |
я конечно может не в тему скажу, но как насчет вместо использования стандартных int uint и number написать что нить вроде прстеньких классиков хранящих тока значение и текстовую константу с типом переменной?
немного муторно... но может я что то не понял... |
А есть еще NaN и MIN_VALUE ;)
|
Хочу полюбопытствовать, а где могла возникнуть такая задача?
|
а с MIN_VALUE кста работает)
и частично с NaN(NaN после выполнения функции у int волшебним способом превращаеться в 0)... вощем афтару вполне возможно и не нужна универсальная функция на все случаи)) |
Цитата:
|
Цитата:
|
MerlinTwi, хм ... а объекты не типизированные?
|
ну дак чем то что я написал не подходит?
|
Проще, я думаю, проверять, целое ли число и меньше ли оно диапазона int.MAX_VALUE и записывать соответственно int, с флагом, что это int. В противном случае — Number.
А вообще, при возникновении подобных проблем, стоит призадуматься над правильности такой схемы. |
| Часовой пояс GMT +4, время: 15:02. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.