|
|
|||||
вопрос типизации int и Number
var a:Number = 5; trace(a is int); trace(a is Number); trace(typeof(a)); trace(a["constructor"]); var b:int = 5; trace(b is int); trace(b is Number); trace(typeof(b)); trace(b["constructor"]); Есть желающие пояснить почему так происходит?
__________________
:) |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
А зачем это нужно?
__________________
Загружаем картинки, минуя ошибки безопасности |
|
|||||
bav, typeof- хрен с ним, но если int можно представить как Number, то наоборот - не очень. Меня в данных трэйсах больше "is" интересует.
i.o., истина, нет?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
писал свой велосипед сериализатор-десериализатор, наткнулся. Зачем это другой вопрос, просто непонятно.
Т.е. внутри это всё равно одного и того-же типа, и намбер в случае если мы туда пишем целое перестаёт быть IEEE 754 а начинает быть интом, об этом сказано в документации и сказано что оно может хранить инт на 53 бита, обсуждали тут недавно. не понятно 1. a is int 2. b is Number 3. typeof(b) 4. b["constructor"] причём инт пробовал делать через new Number() и new Int() результат точно то-же. Добавлено через 41 секунду TanaTiX вот меня тоже is больше всего задел, на нём собственно я баг и словил у себя Добавлено через 9 минут Вопрос typeof(b) снят, понятно, увидел в документации, возможно это из-за совместимости с ECMAScript-262. Глянул стандарт, там нет типа инт и uint и соответственно typeof в ECMAScript определён именно так как это сделала Adobe, т.е. возвращает "number" а вот is пока не понятен. Добавлено через 17 минут Это получается что каждый раз, когда я провожу какие-то вычисления с плавающей точкой, виртуальная машина тратит время чтобы понять, является ли это число с плавающей точкой целым или нет. Всегда считал что от того как мы объявили переменную зависит её представление в памяти, а не от её значения.
__________________
:) |
|
|||||
Что косвенно намекает на то что такой класс есть и есть его конструктор, который в соответствии с документацией 10.5 обрезает до 10, т.е. приводит к инту.
Да и в flex_sdk_4.5.1.21328\frameworks\libs\player\10.0\playerglobal.swc\int он описан
__________________
:) |
|
|||||
Упс, пардон. Класс есть, в одном файле с Number.
http://hg.mozilla.org/tamarin-centra...core/Number.as
__________________
משיח לא בא משיח גם לא מטלפן |
Часовой пояс GMT +4, время: 23:09. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|