如果你这样做:
$ nil
=> nil
Run Code Online (Sandbox Code Playgroud)
但是如果你这样做:
$ !nil
=> true
Run Code Online (Sandbox Code Playgroud)
为什么!是真的吗?
Jor*_*ing 13
当您!在Ruby中的对象上使用布尔运算符时,必须首先将对象在后台转换为布尔值(true或false).Ruby中的每个对象都是"truthy"或"falsy",而Ruby的实现者选择nil是假的,所以!nil相当于!false,评估为true.