- 1
($isLead) ? $customerBalance = 0 : $customerBalance = $customerMapper->calculateBalance($customer);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+160
($isLead) ? $customerBalance = 0 : $customerBalance = $customerMapper->calculateBalance($customer);
Код от мастера Йода
(Или PHP недостаточно знаю, может в PHP этот код творит нелогичные непотребства.)
Как и в руби впрочем
Elvenfighter выбрал неудачное число для примера (или удачное для выявления перлонубов).
В перле и правда 0 - false. а я думал как в руби.
этот кусок хм... кода превращается... превращается в http://ideone.com/N8ox5H WAIT, OH SHI~
пусой массив -- тоже false, так как в скалярном контексте возвращает свою длинну (0)
пустой хеш -- тоже false, так как в скалярном контексте тоже возвращает 0.
Всё остальное -- true. Т.е. любой другой скаляр (кроме специально запрограммированного) и непустой массив/хеш -- это true.
Так что ле?)
Например шестым перлом
Где можно было написать if(str), приходится писать if(!isNullOrEmpty(str)).
Где можно было написать if(x), приходится if(x == 0).
Становится длинно, надо много писать и читать.
А ведь часто достаточно проверить сначала на пустоту, а затем уже интересоваться, какой там тип.
Если же тип известен, нет нужды явно прописывать.
В C/C++ это будет аналог isNull, в JS - isNullOrEmpty. А !"0" будет false, никаких беспорядков.
> C++
operator bool() const
Имя функции некошерное. toBool было бы лучше. Имхо.
((T) x)->callMe();
неудобно же
Ну, у (type) достаточно высокий приоритет, чтобы не всегда были лишних скобки. А если учесть, что в других языках могут потребовать писать if(toBool(x)) вместо if(x), то не так обидно.
А с вышеупомянутым operator bool из C++ и valueOf из JS можно пилить свои !x со своими удобными правилами.
P.S. Хотя, нет. В JS придётся !+x, чтобы valueOf сработал.
Код написн правильно, просто по человечески было бы написать:
$customerBalance = ($isLead) ? 0 : $customerMapper->calculateBalance($customer);
Тут всегда так.
p.s.
Въебал минус за быдлоганство.
Въебал всем по минусу.