- 1
($isLead) ? $customerBalance = 0 : $customerBalance = $customerMapper->calculateBalance($customer);
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+160
($isLead) ? $customerBalance = 0 : $customerBalance = $customerMapper->calculateBalance($customer);
Код от мастера Йода
Elvenfighter 05.08.2014 15:53 # 0
1024-- 05.08.2014 17:47 # −1
(Или PHP недостаточно знаю, может в PHP этот код творит нелогичные непотребства.)
kegdan 05.08.2014 18:03 # −1
Как и в руби впрочем
1024-- 05.08.2014 18:08 # −1
Elvenfighter выбрал неудачное число для примера (или удачное для выявления перлонубов).
kegdan 05.08.2014 18:13 # −1
В перле и правда 0 - false. а я думал как в руби.
Elvenfighter 06.08.2014 00:26 # 0
этот кусок хм... кода превращается... превращается в http://ideone.com/N8ox5H WAIT, OH SHI~
kegdan 06.08.2014 00:33 # −1
Elvenfighter 06.08.2014 00:41 # −1
пусой массив -- тоже false, так как в скалярном контексте возвращает свою длинну (0)
пустой хеш -- тоже false, так как в скалярном контексте тоже возвращает 0.
Всё остальное -- true. Т.е. любой другой скаляр (кроме специально запрограммированного) и непустой массив/хеш -- это true.
kegdan 06.08.2014 00:51 # −1
inkanus-gray 06.08.2014 00:53 # −1
kegdan 06.08.2014 00:55 # 0
inkanus-gray 06.08.2014 01:02 # −1
kegdan 06.08.2014 01:05 # −1
Так что ле?)
inkanus-gray 06.08.2014 01:11 # −1
kegdan 06.08.2014 01:14 # −1
Например шестым перлом
1024-- 06.08.2014 10:45 # 0
inkanus-gray 06.08.2014 01:05 # −1
kegdan 06.08.2014 01:12 # −1
1024-- 06.08.2014 10:49 # −1
Где можно было написать if(str), приходится писать if(!isNullOrEmpty(str)).
Где можно было написать if(x), приходится if(x == 0).
Становится длинно, надо много писать и читать.
kegdan 06.08.2014 11:06 # −1
1024-- 06.08.2014 11:17 # −1
А ведь часто достаточно проверить сначала на пустоту, а затем уже интересоваться, какой там тип.
Если же тип известен, нет нужды явно прописывать.
kegdan 06.08.2014 12:23 # −1
1024-- 06.08.2014 12:56 # −1
В C/C++ это будет аналог isNull, в JS - isNullOrEmpty. А !"0" будет false, никаких беспорядков.
roman-kashitsyn 06.08.2014 13:11 # 0
> C++
operator bool() const
kegdan 06.08.2014 13:20 # −1
roman-kashitsyn 06.08.2014 13:22 # −1
kegdan 06.08.2014 13:31 # −1
Имя функции некошерное. toBool было бы лучше. Имхо.
1024-- 06.08.2014 13:34 # −1
kegdan 06.08.2014 13:35 # −1
1024-- 06.08.2014 13:36 # −1
kegdan 06.08.2014 13:37 # −1
1024-- 06.08.2014 13:57 # −1
roman-kashitsyn 06.08.2014 14:15 # 0
((T) x)->callMe();
неудобно же
1024-- 06.08.2014 14:25 # 0
Ну, у (type) достаточно высокий приоритет, чтобы не всегда были лишних скобки. А если учесть, что в других языках могут потребовать писать if(toBool(x)) вместо if(x), то не так обидно.
kegdan 06.08.2014 14:28 # −1
1024-- 06.08.2014 14:36 # −1
kegdan 06.08.2014 13:20 # −1
1024-- 06.08.2014 13:23 # −1
А с вышеупомянутым operator bool из C++ и valueOf из JS можно пилить свои !x со своими удобными правилами.
P.S. Хотя, нет. В JS придётся !+x, чтобы valueOf сработал.
kegdan 06.08.2014 13:34 # −1
Elvenfighter 03.09.2014 00:19 # 0
bormand 03.09.2014 05:59 # 0
andr435 14.08.2014 11:19 # +1
Код написн правильно, просто по человечески было бы написать:
$customerBalance = ($isLead) ? 0 : $customerMapper->calculateBalance($customer);
1024-- 14.08.2014 11:39 # −1
Тут всегда так.
kegdan 14.08.2014 12:56 # −1
andr435 14.08.2014 13:48 # −1
kegdan 14.08.2014 14:12 # −1
anonimb84a2f6fd141 14.08.2014 16:27 # −3
p.s.
Въебал минус за быдлоганство.
anonimb84a2f6fd141 14.08.2014 16:30 # −4
Въебал всем по минусу.