这是 ruby 中的任何条件类型吗? !!() , !() , !0, !!0

Is this any condition type in ruby? !!() , !() , !0, !!0

我只是在玩 irb。我尝试了这样的语法 returns me true/false

任何人都可以向我描述为什么以及如何发生这种行为?这是任何条件类型吗?

例如:

 > !!()
 => false 
 > !()
 => true 
 > !0
 => false 
 > !!0
 => true 

如果有人能向我描述这种语法,我将不胜感激。

()
# => nil

圆括号优先 'operator',圆括号不带表达式 return nil,如您所见。所以难怪:

!()
# => true
!!() # == !(!()) == !(true)
# => false

0在Ruby中是真实的(其实只有nilfalse虚假):

puts 'truthy' if 0
truthy
# => nil

所以 0 的反义词是 false:

!0
# => false

!!0相反false

!!0 # == !(!0) == !(false)
# => true

() 的计算结果为 nil,其计算结果类似于 false。添加!运算符(一次、两次或任意多次)只需将 false 更改为 true 并将 true 更改为 false...