причем тут Java, какое она имеет отношение к AS3?
|
СлаваRa, это всё понятно, но мне кажется такое поведение языка непоследовательным. Надо было разрешить неявное приведение булева типа к числу и в других операциях.
|
В приведение типов про оператор + ничего не сказано, чтобы позволяло ему складывать логические переменные.
Добавлено через 42 секунды Цитата:
Добавлено через 3 минуты Могли бы в других операторах разрешить приведение типов, а не только в +. Добавлено через 10 минут Тем более оператором +, нельзя выполнить математическое сложение числа и строки с числом, всегда будет строка. Добавлено через 13 минут Код AS3:
|
Цитата:
Цитата:
Не вижу ни одной ситуации, где это бы пригодилось. Возможно не хватает перегрузки операторов, например, чтобы упростить сложение векторов. Но умножать булево на число - занятие совершенно бессмысленное. Если уж это для чего-то потребовалось, ты всегда можешь сделать явное приведение типов и без проблем произвести операцию |
Мне кажет, что каша в голове по поводу "странного поведения Boolean" возникла из-за двойственного предназначении оператора +, а именно:
+ addition Складывает числовые выражения. Если оба выражения являются целыми числами, их сумма также будет выражена целым числом; если одно из выражений или оба выражения являются числами с плавающей запятой, их сумма также будет выражена числом с плавающей запятой. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются, а не суммируются. В противном случае, если выражение не является числом, проигрыватель Flash® Player преобразует его в число. + concatenation Сцепляет (объединяет) строки. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются. Если оба выражения являются числами, данный оператор выполняет функцию оператора сложения. Компилятор распознаёт, что вы имели ввиду в своём выражении. А теперь посмотрим, что будет, если приведение логики будет с другими операторами: 123/false = 123/0 – деление на ноль; true * "one" – умножение строк. А это как? Ну и дальше в том же духе. |
Цитата:
Код AS3:
|
Код AS3:
|
Цитата:
|
Цитата:
|
Код AS3:
|
Часовой пояс GMT +4, время: 14:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.