Я не понимаю следующий код:
ruby-1.9.1-p378 > puts "nil is false" unless nil
nil is false
=> nil
ruby-1.9.1-p378 > puts "nil isn't false" unless nil == false
nil isn't false
=> nil
В большинстве языков (как минимум, C-base), если (! cond) и if (cond == false) оценивают одно и то же. Что здесь происходит, чтобы сделать это не так?
(Я хотел бы узнать, почему, я понимаю, что так оно и есть.)