Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.03.2017, 18:40
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 11  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
причем тут Java, какое она имеет отношение к AS3?
__________________
местонахождение

Старый 29.03.2017, 18:42
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 12  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
СлаваRa, это всё понятно, но мне кажется такое поведение языка непоследовательным. Надо было разрешить неявное приведение булева типа к числу и в других операциях.

Старый 29.03.2017, 18:42
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 13  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
В приведение типов про оператор + ничего не сказано, чтобы позволяло ему складывать логические переменные.

Добавлено через 42 секунды
Цитата:
Сообщение от СлаваRa Посмотреть сообщение
причем тут Java, какое она имеет отношение к AS3?
Такое что + там тоже перегружен, однако, сложить true и 2 нельзя.

Добавлено через 3 минуты
Могли бы в других операторах разрешить приведение типов, а не только в +.

Добавлено через 10 минут
Тем более оператором +, нельзя выполнить математическое сложение числа и строки с числом, всегда будет строка.

Добавлено через 13 минут
Код AS3:
В приведение типов про оператор + ничего не сказано, чтобы позволяло ему складывать логические переменные.
Точнее там сказано, что если выражение не является строкой, то флеш плеер его автоматически преобразует в число. Что им мешало сделать тоже самое с остальными?
__________________
Я заклинаю вас действовать иначе.

Старый 29.03.2017, 20:42
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 14  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Такое что + там тоже перегружен, однако, сложить true и 2 нельзя.
И тем не менее, я тоже не понимаю, при чем тут джава? Другой язык, другая платформа, другие разработчики. Там и строка не является примитивным типом и с помощью == строки не сравниваются посимвольно как в as3, вместо этого используется метод equals. И много других отличий. Не вижу смысла искать одинаковое поведение операторов в языках, в которых и без этого миллион различий.
Цитата:
Могли бы в других операторах разрешить приведение типов, а не только в +.
Для чего?
Не вижу ни одной ситуации, где это бы пригодилось. Возможно не хватает перегрузки операторов, например, чтобы упростить сложение векторов. Но умножать булево на число - занятие совершенно бессмысленное. Если уж это для чего-то потребовалось, ты всегда можешь сделать явное приведение типов и без проблем произвести операцию
__________________
Ко мне можно и нужно обращаться на ты)

Старый 30.03.2017, 13:33
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 15  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
Мне кажет, что каша в голове по поводу "странного поведения Boolean" возникла из-за двойственного предназначении оператора +, а именно:
+ addition
Складывает числовые выражения. Если оба выражения являются целыми числами, их сумма также будет выражена целым числом; если одно из выражений или оба выражения являются числами с плавающей запятой, их сумма также будет выражена числом с плавающей запятой.
Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются, а не суммируются. В противном случае, если выражение не является числом, проигрыватель Flash® Player преобразует его в число.

+ concatenation
Сцепляет (объединяет) строки. Если одно выражение является строкой, все другие выражения преобразуются в строки и сцепляются.
Если оба выражения являются числами, данный оператор выполняет функцию оператора сложения.
Компилятор распознаёт, что вы имели ввиду в своём выражении.
А теперь посмотрим, что будет, если приведение логики будет с другими операторами:
123/false = 123/0 – деление на ноль;
true * "one" – умножение строк. А это как?
Ну и дальше в том же духе.

Старый 30.03.2017, 19:23
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 16  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Для чего?
Не вижу ни одной ситуации, где это бы пригодилось.
Понадобилось мне для игры, где в зависимости от значения к итоговому значению переменной прибавляется некоторое число, и чтобы не городить условий я просто написал.

Код AS3:
a = 20;
b = 80;
c = true;
d = a + c*b;
__________________
Я заклинаю вас действовать иначе.

Старый 30.03.2017, 20:34
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 17  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
d = c ? a + b : a;
__________________
Reality.getBounds(this);

Старый 31.03.2017, 10:20
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 18  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Bletraut Посмотреть сообщение
Понадобилось мне для игры, где в зависимости от значения к итоговому значению переменной прибавляется некоторое число, и чтобы не городить условий я просто написал.

Код AS3:
a = 20;
b = 80;
c = true;
d = a + c*b;
Вот я я и говорю, для таких редких случаев, можно сделать явное приведение типа
__________________
Ко мне можно и нужно обращаться на ты)

Старый 31.03.2017, 16:05
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 19  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 566
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Код AS3:
d = c ? a + b : a;
Удобочитаемость страдает.
__________________
Я заклинаю вас действовать иначе.

Старый 31.03.2017, 19:52
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 20  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Код AS3:
d = a + int(c)*b;
__________________
местонахождение

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.