- 1
- 2
- 3
def reversed?
!!reversed_by_id
end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−103
def reversed?
!!reversed_by_id
end
И даже в сишечке.
Помню тут кто-то рассказывал что это стандартный прием javaScript. Чем несказанно меня насмешил.
Смысл делать двойное отрицание?
Именно так. bool в сишке не было, if и while отлично работали с интами, но иногда нужно было "нормализовать" число, превратив его в 0 (если был 0) или 1 (если был не 0). Вот тогда и оказывалась полезной такая идиома.
P.S. Можно еще вместо !!x написать x && 1 или x || 0, но это длиннее и не так красиво...
(bool) x //каст в бул
!!nil # false