?

Log in

No account? Create an account
entries friends calendar profile My Website Previous Previous Next Next
Code review - Уголок Школьника
scolar
scolar
Code review
Есть одна вещь в коде, которую я ненавижу сильнее, чем оператор goto: это получение булевского значения двойным восклицательным знаком.
11 comments or Leave a comment
Comments
spamsink From: spamsink Date: November 2nd, 2011 12:44 am (UTC) (Link)
Особенно в C++, где восклицательный знак может иметь произвольный смысл?
demosthen From: demosthen Date: November 2nd, 2011 01:32 am (UTC) (Link)
O!
sorotokin From: sorotokin Date: November 2nd, 2011 04:49 am (UTC) (Link)
А в JavaScriptе по другому нельзя
From: ex_juan_gan Date: November 2nd, 2011 05:07 am (UTC) (Link)
А зря. Топология двойного отрицания. Святое дело, научно обоснованное.
pilpilon From: pilpilon Date: November 2nd, 2011 01:07 pm (UTC) (Link)
А как еще?
scolar From: scolar Date: November 2nd, 2011 01:09 pm (UTC) (Link)
Явным сравнением с нулём твоего типа.
pilpilon From: pilpilon Date: November 2nd, 2011 01:41 pm (UTC) (Link)
то есть,

!!if_some_cond() == !!if_some_other_cond()

ты предлагаешь писать


if_some_cond() == 0 && if_some_other_cond() == 0 ||
if_some_cond() != 0 && if_some_other_cond() != 0

?
scolar From: scolar Date: November 2nd, 2011 02:10 pm (UTC) (Link)
Ещё xor существует, вообще-то.

Скажи, тебе не кажется, что что-то не так с дизайном в твоём примере, когда у тебя есть две функции, возвращаюшие небулевские значения, а тебе важно их одновременное обращение или необращение в ноль?
pilpilon From: pilpilon Date: November 2nd, 2011 02:29 pm (UTC) (Link)
У меня обычно C и возвращают они int.
И в случае каких-нибудь is_empty, возвращают они size, для простоты. а или кто-то - набор флагов.
ну и вообще, никаких гарантий, что int функция вернет тебе только 0 или 1, нет.

логический xor он и так обычно в !!a != !!b ,
хотя есть и другие варианты.
spamsink From: spamsink Date: November 2nd, 2011 08:35 pm (UTC) (Link)
Явное приведение к bool кошернее.
demosthen From: demosthen Date: November 3rd, 2011 02:48 am (UTC) (Link)
Дим, в обычных IT компаниях с тобой согласны. :)
11 comments or Leave a comment