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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 20.04.2014, 02:51
alexcon314 вне форума Посмотреть профиль Отправить личное сообщение для alexcon314 Найти все сообщения от alexcon314
  № 21  
alexcon314
listener

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Цитата:
Меня даже забавляет образ человека, смеющегося после более восьми лет, над годовалым + полмесяца.
Akopalipsis, если вы пишете ваш код так же связно и стройно, как излагаете свои мысли (а очень похоже, что так же), то лучше вам таки заняться лепкой пельменей. Особо отмечу, что ваши "не когда", "не где" и пр. никуда не делись и после года объяснений, что правильно писать "никогда", "нигде" и т.д. Так что уж там про конструкторы разные говорить...

Добавлено через 8 минут
Wolsh, то, что компилится в стриктмоде и не ругается - вот это не есть хорошо. То, что автоматически преобразуется, это не проблема, это щастье .

Старый 20.04.2014, 03:44
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 22  
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Wolsh, то, что компилится в стриктмоде и не ругается - вот это не есть хорошо. То, что автоматически преобразуется, это не проблема, это щастье .
alexcon314 - дружище, это не счастье, это ужасная беда, которая деморализует писать код грамотно.
В яве ты так не сделаешь, например.

Одно действо чего стоит
Код AS3:
var str:String = "1,2,3,4,5";
var a:Array = str.split(",");
if(a.indexOf(1) != -1) trace("ok")
Ага феил, где оно наше дружелюбное преобразование из строки в число и наоборот ! - отобрали!!!
А теперь так
Код AS3:
function rex(a:*):void {  trace(a == 1) }
rex("1")
А тут все ок.
Или вот
Код AS3:
function b(c:int):void {  trace(c == 1) }
var a:Array = ["1"];
b(a[0])
Снова ок.
И это все очень убивает на самом деле, давай больше возможностей писать на нашем любимом Костыльно Ориентированном Программировании.
Проще говоря, есть места где перевод автоматический существует, а есть где нет. Это грубо. Должно быть либо везде нет, либо везде да. Это все таки язык - четкая директива, а не сочинение на свободную тему.

Добавлено через 2 минуты
П.с. - некоторые подумают и скажут, а не использовать ли нам === тогда?
Ответ
Код AS3:
a.indexOf(1) != -1 == a.indexOf(1) !== -1
__________________
Марк Tween

Старый 20.04.2014, 05:43
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 23  
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
in4core, вы правы. Я тоже за строгую типизацию и однородный язык.
Но что-то мне подсказывает, что с AS3 ничего не поделать.
__________________
There is no thing in this world that is not simple.

Старый 20.04.2014, 09:59
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 24  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Должно быть либо везде нет, либо везде да.
Это будет загадкой для тебя, но именно так и есть))).
Не надо приводить пример с функцией, противопоставляя его инструкции языка. Это совершенно разные "везде". Инструкции языка (if, while и т.п.) вычисляют Boolean из выражения. Это не функции, принимающие готовый параметр типа Boolean и впадающие в ступор, когда получают что-то другое. Сами эти инструкции и являются механизмами получения Boolean из любого выражения. Их функциональность в этом. Это их задача, их смысл. Обрати внимание на их сигнатуру: они вовсе не требуют тип Boolean — а значит и никакого "преобразования" не происходит, они принимают бесполый condition и вычисляют из него Boolean самостоятельно.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 20.04.2014 в 10:18.
Старый 20.04.2014, 13:01
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 25  
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Wolsh - а причем тут вайл и Иф и т.п. ? Я просто порассуждал не в контексте темы, а в контексте строгой типизации, я помоему только с методами примеры и привел и не противопоставил их инструкциям
__________________
Марк Tween

Старый 20.04.2014, 14:59
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 26  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А, ну это здорово, что не по теме. Тогда будем считать это ответом на
Цитата:
Wolsh, то, что компилится в стриктмоде и не ругается - вот это не есть хорошо.
По поводу твоих претензий:
1) a.indexOf(1) ищет число 1. Ищется строгое соответствие. Не что-то похожее, а число. С какого перепугу он должен возвращать индекс строки?
Может, еще и проверять строки на charCode, как в вышеупомянутом сравнении "a" < "b"?
2) "А тут все ок." Ну, действительно ОК. Типизации же нет, и сравнение не строгое.
3) a[0] возвращает нетипизированный объект. Это не вектор, чтобы возвращать типизированные данные. Дальше — см. выше.
4) Последний пассаж не понял вообще. Что-то типа 4 != -1 это то же самое, что и 4 !== -1 ?
Остроумно. И так неожиданно!...
Вывод: довольно непрактично предъявлять претензии к типизации в языке, когда ей не пользуешься.
__________________
Reality.getBounds(this);

Старый 20.04.2014, 19:18
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 27  
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Последгий пример 4. дает true . Тоесть нет разницы в проверке строго и не строгого равенства.
Цитата:
a.indexOf(1) ищет число 1
Да что ты говоришь! А я думал он класс ищет... Понятное дело, что он ищет число, а не строку. Суть в том, что в ДАННОМ месте нет приведения типов из одного в другого , ведь равенство дается не строгое, а ==, а во втором случае с массиво а[0] есть. Какое ты имеешь право создавая четкие инструкции в одном месте пропускать приведение в другом нет? Сравни, еще раз говорю, с джавой , там таких мест неоднородных просто нет.

Как я считаю должно быть a.indexOf(1) == -1 // false, a.indexOf(1) === -1 // true - раз весь язык разрешает приведение типов, то и тут должно оно быть.

Щас проверять лень, но я думаю и такое пройдет идеально

Код AS3:
var v:Vector.<int> = new <int>[0,1,2];
			function a(c:String):void { }
			a(v[0]);
И да, проверил... прошло. А вектор в отличие от массива, у нас типизированный сука объект. О чем тут говорить то вообще?
__________________
Марк Tween

Старый 20.04.2014, 19:39
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 28  
Akopalipsis
Banned
[+4 24.02.14]
[+4 07.11.13]
[+ 13.03.14]

Регистрация: Mar 2013
Сообщений: 1,864
А при чем тут вектор? Вы в метод а передаёте 0, а не вектор...

Добавлено через 3 минуты
А Вы хотите на столько строгую типизацию и строгий компилятор, чтобы код ниже ошибку вызывал?))
Код AS3:
var a:Number = 2.26;
var b:int = a;


Последний раз редактировалось Akopalipsis; 20.04.2014 в 19:58.
Старый 20.04.2014, 19:52
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 29  
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
И да, проверил... прошло. А вектор в отличие от массива, у нас типизированный сука объект. О чем тут говорить то вообще?
0 == null, такое значение может быть у любого типа переменной, кроме буля, где null == false. Попробуйте a(v[1]).
__________________
There is no thing in this world that is not simple.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Суть в том, что в ДАННОМ месте нет приведения типов из одного в другого , ведь равенство дается не строгое, а ==
И снова gotoAndRead("help"); Может, настало время поностальгировать, полистать хелп вечерами?
Что-то меня терзают смутные сомнения.. мне начинает казаться, что ты намекаешь, мол "раз я поставил после вызова indexOf() два значка равно, этот вызванный indexOf() должен был искать мне не строгое равенство в массиве"? Без комментариев. Переходи на более легкие наркотики. Пожалуйста.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 20.04.2014 в 20:42.
Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 16:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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