我试图在下面的代码中与运营商!~
和!=
一起玩。但无法弄清楚这种差异。但我怀疑,如果不是这样,为什么Ruby介绍他们?Ruby中的“!=”和“!〜”是否有区别?
2 !=3
# => true
2 !~ 3
# => true
c= [1,2,3]
# => [1, 2, 3]
d=[1,4,5]
# => [1, 4, 5]
c != d
# => true
c !~ d
# => true
任何人都可以请帮我在这里说,如果它们之间有什么区别?
我试图在下面的代码中与运营商!~
和!=
一起玩。但无法弄清楚这种差异。但我怀疑,如果不是这样,为什么Ruby介绍他们?Ruby中的“!=”和“!〜”是否有区别?
2 !=3
# => true
2 !~ 3
# => true
c= [1,2,3]
# => [1, 2, 3]
d=[1,4,5]
# => [1, 4, 5]
c != d
# => true
c !~ d
# => true
任何人都可以请帮我在这里说,如果它们之间有什么区别?
The =~
operator及其负!~
用于模式匹配。它被Regexp和String覆盖,以提供正则表达式模式匹配,但是对于数字它没有实现。这就是为什么2 =~ 3
给出nil
,所以2 !~ 3
是true
。
如果没有对数字实施罚款,那么这些'boolean'值是怎么来的? – 2013-02-22 20:37:10
['! nil == true'。](http://ruby-doc.org/core-1.9.3/BasicObject.html#method-i-21) – jtbandes 2013-02-22 20:40:35
意味着你说'2!〜3'返回'!nil' ? – 2013-02-22 20:48:05
我相信'!〜'是用来匹配正则表达式的字符串。 – MurifoX 2013-02-22 20:29:36
'2!= 2;'=>'false'但是'2!〜2;'=>'true' – 2013-02-22 20:35:16