![]() |
Логическое Not ! и ноль
Можно сказать, что
Код:
!(0) == trueКод:
!(n) == false, где n - любое число, кроме нуля. |
а функией trace() не пробовали пользоваться?
|
Пробовал
Код:
trace(!(0));Код:
true |
вполне очевидно что:
не(неправда) == правда ;) |
Цитата:
|
Это АС2 насильно конвертит Number в Boolean, иногда очень удобно, а иногда дико мешает. Чтобы проверить, не является ли аргумент числом лучше пользоваться isNaN()
|
Цитата:
|
Мне, иногда нужно, чтобы и 0 тоже считался за true, мне было бы удобнее, если бы я сам себе мог настраивать правила конвертации числа в булевое значение =) (Очень часто хочется, чтобы, например, <0 считалось за false, а >=0 за true, избавило бы от лишней операции %)
|
Собственно, >= и есть решение.
|
Код:
function isLess (val) { |
Ок, другой пример: %)
Код:
function a(){Я же не говорю, что нет решения %) оно конечно же есть =))) ну. только хочется иногда писать меньше =) (лентяй я :P) |
Надо +1 сделать.
|
Код:
function a(){ |
Код:
function isLess () { |
Ок, давайте посмотрим на вопрос шире %)
Возможно ли вообще как-то повлиять на то, каким образом Флеш конвертит типы один в другой? Ну, вот не важно зачем, но вот хочется мне, чттобы выражение типа Number("hi!") возвращало Number.POSITIVE_INFINITY =) Возможно ли такое? |
ерундой какой-то страдаете...есть правила...надо им придерживаться...в математике вы же не пытаетесь изменить аксиому о параллельных прямых и о том что на ноль делить нельзя...смысл тут тогда это делать? придумайте свою дискретную математику, постройте компьютер на её основе, напишите свой язык программирования...вот вам и простое решение проблемы :D
|
А расширить Number лень?
|
Я понимаю, что можно найти кучу отмазок, почему этого не нужно делать, но вот хочется, и все тут %)
Не хочу расширять Number, хочу, чтобы все мои Number'ы так себя вели. =) Я не знаю, может. большой практической пользы от этого не будет, но все равно интересно %) Хотя, вот, например, хочу добавить вариативность к конструктору Number, на манер, как это есть у Array. вот, чтобы Number(256,2,3) выдавал в итоге 0xffffff =) Или, вот, куда более прозаический вариант! Number("red") = 0xff0000; :] |
Это уже капризы пошли.
|
Ну... я бы не сказал... вот, представь, какая-то CMS-ка сгенерила простенькую текстовую страничку и использовала при ее создании вполне себе стандартные возможности типа style='p{color:red}' И все бы было почти замечательно, но вот, млин, флеш не поймет, что red == 0xff0000, и совсем другое значение туда подставит =)
Можно, конечно, на этапе париснга полученного текста\CSS'а это заменить, но ведь на сколько удобнее было бы добавить Number'у еще десяток констант! |
Я несколькими постами выше сказал про расширение класса, ну или не расширение, а композицию, зависит от задача. Но факт в том, что нужно писать свой класс. Вообще-то классы для того и пишут, чтобы они делали так, как тебе нужно.
Если ты задаешь в cms color:red, значит напиши обработчик который, не напрямую передает стиль, а сначала его парсит и подставляет то, что тебе нужно. |
Ладно, не хотите заморачиваться - как хотите, я же не требую ничего =)
Мне просто интересно (пошел дальше пробовать =) |
| Часовой пояс GMT +4, время: 15:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.