ibash.org.ru - Новый цитатник Рунета | Цитаты: По дате По рейтингу Случайно Добавить Поиск RSS |
Форум: Тернарые ? операторы : perl ? python : ruby ? php : wtf?; [RSS] | Форум: Вход Регистрация Участники Поиск RSS |
Shock 23.04.2009 - 19:38 | Тернарые ? операторы : perl ? python : ruby ? php : wtf?; shock@shock:~$ perl -e "print 1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? 8 : 9" 2 shock@shock:~$ python -c "print 2 if 1 else 4 if 3 else 6 if 5 else 8 if 7 else 9" 2 shock@shock:~$ ruby -e "print 1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? 8 : 9" 2 shock@shock:~$ php -r "echo 1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? 8 : 9;" 8 shock@shock:~$ WTF ? bash: WTF?: команда не найдена PS. Java, C++ тоже вернули бы 2. |
Shock #1 - 23.04.2009 - 19:38 | В чем причина? Возможно, оно работает так: PHP: 1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? 8 : 9 => (((1 ? 2 : 3) ? 4 : 5) ? 6 : 7) ? 8 : 9 => true ? 8 : 9 => 8 Другие языки: Мое предположение: 1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? 8 : 9 => 1 ? 2 : (3 ? 4 : 5 ? 6 : 7 ? 8 : 9) => 2 Предположение Xenius'a (наверное, более верное) 1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? 8 : 9 => 1 ? 2 : 3 ? 4 : 5 ? 6 : (7 ? 8 : 9 == 8) => 1 ? 2 : 3 ? 4 : (5 ? 6 : 8 == 6 ) => 1 ? 2 : (3 ? 4 : 6 == 4) => 1 ? 2 : 4 => 2 |
naryl #2 - 24.04.2009 - 00:33 | Глобальный И Надёжный вычисляет тернарный оператор справа налево, а Языки Программирования - слева направо. |
Shock #3 - 04.03.2011 - 08:41 | http://habrahabr.ru/blogs/php/114899/ |
К списку вопросов |
«ibash.org.ru — Новый цитатник Рунета» | Почта вебмастера: imail@ibash.org.ru |