not true && false # => true : not (true && false) !true && false # => false : (!true) && false
not
is a keyword. Its logic is implemented within the internals of Ruby.
!obj
is a unary operator. This operator is in fact a method : BasicObject#!@
.
!true && false
is equivalent to
true.!@ && false