Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.253.152] |
|
Страницы: (7) « Первая ... 2 3 [4] 5 6 ... Последняя » все ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Цитата Vesper @ И потом нарываешься на хитро закопанные грабли в виде смены ключей оптимизации кода, и выясняется А причём тут оптимизация? && и || обязаны выполняться по-порядку, и оптимизатор не имеет права их переставлять. |
Сообщ.
#47
,
|
|
|
Vesper, ну это ж не Delphi, там бы {$B-} был. Ну и это отчасти троллинг примера Серафима, а отчасти... ну мне тоже нравятся такие конструкции и нагромождения всякие (усложнения)
А && имеет более высокий приоритет, чем ||. Добавлено Есть ещё замечательная операция xor (^). Тоже можно побаловаться а-ля if (x ^ y) doSmthng(); Видимо, ^^ не стали делать как раз от греха подальше Добавлено Serafim, вот скажи. Ну нафига фигурные скобки для if (while, for... нужное подчеркнуть), который прописан в одну строку? Собственно, это смежно с if (id) fetch('/data/' + id); |
Сообщ.
#48
,
|
|
|
Ну не говорить же, что if тут будет лучшим вариантом, только за опускание фигурных скобок всё равно надо отрубить что-нибудь лишнее)) Так что пришлось выкручиваться. С другой стороны, мне кажется нормальным использование switch/case для однотипных условных операторов. Кажется, что для этого он и был предназначен, не?) |
Сообщ.
#49
,
|
|
|
Я понимаю, что какой-нибудь ландырь может по запаре забыть поставить скобки, но при наличии выравнивания этот косяк сразу будет виден...
Добавлено Эх, не успел склеить с предыдущим сообщением Добавлено Цитата Serafim @ ИМХО, он был (хорошее слово) предназначен для проверки 1 переменной на разные значения, а не наоборот Кажется, что для этого он и был предназначен, не?) |
Сообщ.
#50
,
|
|
|
Цитата Jin X @ Serafim, вот скажи. Ну нафига фигурные скобки для if (while, for... нужное подчеркнуть), который прописан в одну строку? Для языков, которые я использую - это общепринятый стандарт, всё равно потом CS поправит код в CI, так что пофигу. Да и вообще, ГОСТ для C/C++, кажется, есть на эту тему |
Сообщ.
#51
,
|
|
|
Когда больше трёх, ИМХО, лучше использовать не отдельные переменные, а множество, к примеру...
|
Сообщ.
#52
,
|
|
|
Цитата Jin X @ ИМХО, он был (хорошее слово) предназначен для проверки 1 переменной на разные значения, а не наоборот Допускаю, что ты прав. Но это не значит, что обратный случай - плохой. |
Сообщ.
#53
,
|
|
|
Цитата Serafim @ СНиП и СанПиН ГОСТ |
Сообщ.
#54
,
|
|
|
Цитата Jin X @ Когда больше трёх, ИМХО, лучше использовать не отдельные переменные, а множество, к примеру... +1 |
Сообщ.
#55
,
|
|
|
Serafim, кстати, что ты думаешь об if (smthngBad1 && (i=1) || smthngBad2 && (i=2) || smthngBad3 && (i=3)) ?
|
Сообщ.
#56
,
|
|
|
Цитата Jin X @ Видимо, ^^ не стали делать как раз от греха подальше Не от греха подальше, а потому что операция бесмысленна. Главное отличие || от | (&& и &, соответственно), помимо того, что одна - логическая, а вторая - побитовая в том, что первая ещё и ленивая. А вот ^^ ленивой не сделать. Цитата Jin X @ Vesper, ну это ж не Delphi, там бы {$B-} был. Хм, прочитал про это. Какому идиоту вздумалось вводить этот ключ? Это же трындец какой-то. |
Сообщ.
#57
,
|
|
|
Цитата Jin X @ Serafim, кстати, что ты думаешь об if (smthngBad1 && (i=1) || smthngBad2 && (i=2) || smthngBad3 && (i=3)) ? Это печально Сам иногда говнокодю, делая присваивания в условиях, но не до такой степени |
Сообщ.
#58
,
|
|
|
Цитата Serafim @ Сам иногда говнокодю, делая присваивания в условиях, но не до такой степени Эй, а он не безнадежен! |
Сообщ.
#59
,
|
|
|
Цитата OpenGL @ При этом они ещё точки следования вставляют, так что ++ в безопасности.А причём тут оптимизация? && и || обязаны выполняться по-порядку, и оптимизатор не имеет права их переставлять. Цитата Jin X @ Это обычное !=. Зачем? Видимо, ^^ не стали делать как раз от греха подальше |
Сообщ.
#60
,
|
|
|
Цитата OpenGL @ Если под ленивой ты подразумеваешь проверку одного условия из 2-х (если оно true для ||), то отчего ж && не ленивая (при первом false)?Не от греха подальше, а потому что операция бесмысленна. Главное отличие || от | (&& и &, соответственно), помимо того, что одна - логическая, а вторая - побитовая в том, что первая ещё и ленивая. А вот ^^ ленивой не сделать. Цитата Qraizer @ Это обычное !=. Зачем? Цитата Serafim @ Ну ладно... if (smthngBad1 || ++i && smthngBad2 || ++i && smthngBad3)но не до такой степени Как будто бы и не присвоение почти (на всякий случай скажу, что согласен, что это говнокодинг, но выглядит прикольно, поэтому иногда так и подмывает так писать) Добавлено Цитата Qraizer @ Это обычное !=. Зачем? Цитата Jin X @ Хотя нет, не тормознул...Точно. Тормознул чё-т я 5 != 7 = true но 5 ^^ 7 = false Добавлено Если только так извращаться: var x=5, y=7; alert((x&&1) != (y&&1)); // false |