这是 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中是真实的(其实只有nil
和false
是虚假):
puts 'truthy' if 0
truthy
# => nil
所以 0
的反义词是 false
:
!0
# => false
与!!0
相反false
:
!!0 # == !(!0) == !(false)
# => true
() 的计算结果为 nil
,其计算结果类似于 false
。添加!运算符(一次、两次或任意多次)只需将 false
更改为 true
并将 true
更改为 false
...
我只是在玩 irb。我尝试了这样的语法 returns me true
/false
任何人都可以向我描述为什么以及如何发生这种行为?这是任何条件类型吗?
例如:
> !!()
=> false
> !()
=> true
> !0
=> false
> !!0
=> true
如果有人能向我描述这种语法,我将不胜感激。
()
# => nil
圆括号优先 'operator',圆括号不带表达式 return nil
,如您所见。所以难怪:
!()
# => true
!!() # == !(!()) == !(true)
# => false
0
在Ruby中是真实的(其实只有nil
和false
是虚假):
puts 'truthy' if 0
truthy
# => nil
所以 0
的反义词是 false
:
!0
# => false
与!!0
相反false
:
!!0 # == !(!0) == !(false)
# => true
() 的计算结果为 nil
,其计算结果类似于 false
。添加!运算符(一次、两次或任意多次)只需将 false
更改为 true
并将 true
更改为 false
...