|
|
|||||
причем тут Java, какое она имеет отношение к AS3?
__________________
местонахождение |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
СлаваRa, это всё понятно, но мне кажется такое поведение языка непоследовательным. Надо было разрешить неявное приведение булева типа к числу и в других операциях.
|
|
|||||
В приведение типов про оператор + ничего не сказано, чтобы позволяло ему складывать логические переменные.
Добавлено через 42 секунды Такое что + там тоже перегружен, однако, сложить true и 2 нельзя. Добавлено через 3 минуты Могли бы в других операторах разрешить приведение типов, а не только в +. Добавлено через 10 минут Тем более оператором +, нельзя выполнить математическое сложение числа и строки с числом, всегда будет строка. Добавлено через 13 минут Точнее там сказано, что если выражение не является строкой, то флеш плеер его автоматически преобразует в число. Что им мешало сделать тоже самое с остальными?
__________________
Я заклинаю вас действовать иначе. |
|
|||||
Цитата:
Цитата:
Не вижу ни одной ситуации, где это бы пригодилось. Возможно не хватает перегрузки операторов, например, чтобы упростить сложение векторов. Но умножать булево на число - занятие совершенно бессмысленное. Если уж это для чего-то потребовалось, ты всегда можешь сделать явное приведение типов и без проблем произвести операцию
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
Мне кажет, что каша в голове по поводу "странного поведения Boolean" возникла из-за двойственного предназначении оператора +, а именно:
+ addition Складывает числовые выражения. Если оба выражения являются целыми числами, их сумма также будет выражена целым числом; если одно из выражений или оба выражения являются числами с плавающей запятой, их сумма также будет выражена числом с плавающей запятой. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются, а не суммируются. В противном случае, если выражение не является числом, проигрыватель Flash® Player преобразует его в число. + concatenation Сцепляет (объединяет) строки. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются. Если оба выражения являются числами, данный оператор выполняет функцию оператора сложения. Компилятор распознаёт, что вы имели ввиду в своём выражении. А теперь посмотрим, что будет, если приведение логики будет с другими операторами: 123/false = 123/0 – деление на ноль; true * "one" – умножение строк. А это как? Ну и дальше в том же духе. |
|
|||||
Цитата:
__________________
Я заклинаю вас действовать иначе. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
__________________
Reality.getBounds(this); |
|
|||||
Вот я я и говорю, для таких редких случаев, можно сделать явное приведение типа
__________________
Ко мне можно и нужно обращаться на ты) |
|
|||||
__________________
Я заклинаю вас действовать иначе. |
|
|||||
__________________
местонахождение |
Часовой пояс GMT +4, время: 07:04. |
|
« Предыдущая тема | Следующая тема » |
|
|