nil != false
nilは偽になりますが、nil == falseではありません。
if nil == false puts "nil == false" else puts "nil != false" #=> nil != false end
でも、無理矢理nilの==を再定義してしまうと、nil == falseになってしまいます。…どこかで矛盾が起きるかもしれませんけれど。
def nil.==(x) if x == false true elsif x == nil true else false end end if nil == false puts "nil == false" #=> nil == false else puts "nil != false" end