Ruby中的“!=”和“!〜”之间有什么区别吗?

时间:2013-02-22 20:27:00

标签: 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

有人可以在这里帮助我说一下他们之间有什么不同吗?

1 个答案:

答案 0 :(得分:7)

The =~ operator及其否定!~用于模式匹配。它由RegexpString覆盖,以提供正则表达式模式匹配,但对于数字,它未实现。这就是2 =~ 3给出nil的原因,因此2 !~ 3true