这是ruby中的任何条件类型吗!!() , !() , !0, !!0
我只是在和irb玩。我尝试了这样的语法,它返回我这是ruby中的任何条件类型吗!!() , !() , !0, !!0,ruby,irb,Ruby,Irb,我只是在和irb玩。我尝试了这样的语法,它返回我true/false 有人能告诉我为什么会发生这种行为,以及是如何发生的吗?这是任何条件类型吗 例如: > !!() => false > !() => true > !0 => false > !!0 => true 如果有人能给我描述一下这种语法,我将不胜感激 () # => nil 括号是优先级“运算符”,如您所见,不带表达式的括号返回nil。因此,难怪: !(
true
/false
有人能告诉我为什么会发生这种行为,以及是如何发生的吗?这是任何条件类型吗
例如:
> !!()
=> false
> !()
=> true
> !0
=> false
> !!0
=> true
如果有人能给我描述一下这种语法,我将不胜感激
()
# => nil
括号是优先级“运算符”,如您所见,不带表达式的括号返回nil。因此,难怪:
!()
# => true
!!() # == !(!()) == !(true)
# => false
0
在Ruby中是真实的(事实上,只有nil
和false
是虚假的):
因此0
的反面是false
:
!0
# => false
!!0 # == !(!0) == !(false)
# => true
和!!0
与false
相反:
!0
# => false
!!0 # == !(!0) == !(false)
# => true
括号是优先级“运算符”,如您所见,不带表达式的括号返回nil。因此,难怪:
!()
# => true
!!() # == !(!()) == !(true)
# => false
0
在Ruby中是真实的(事实上,只有nil
和false
是虚假的):
因此0
的反面是false
:
!0
# => false
!!0 # == !(!0) == !(false)
# => true
和!!0
与false
相反:
!0
# => false
!!0 # == !(!0) == !(false)
# => true
()的计算结果为
nil
,其计算结果与false
类似。添加!运算符(一次、两次或多次)只需将false
更改为true
并将true
更改为false
。()的计算结果为nil
,其计算结果与false
类似。添加!运算符(一次、两次或多次)只需将false
更改为true
和true
更改为false
。在ruby中,只有false
和nil
是错误的。@Aetherus你是对的,我认为在我的回答中值得注意。谢谢你的评论。@MarekLipka:谢谢你描述得很好的回答。注意这是一个方法,所以!!0
相当于0.send(:!@)。send(:!@)
。这可能更容易理解。@MarekLipka:谢谢你描述得很好的回答。在ruby中,只有false
和nil
是错误的。@Aetherus你是对的,我认为我的回答值得注意。谢谢你的评论。@MarekLipka:谢谢你描述得很好的回答。注意这是一个方法,所以!!0
相当于0.send(:!@)。send(:!@)
。这可能更容易理解。@MarekLipka:谢谢你描述得很好的回答。