==~
操作员在下面做什么?
['a','b','c'].join ==~ /b/
# =>false
我尝试了一些不同的数组和字符串,但从未收到语法错误,但是
==~
似乎是一个总是返回false
的regex比较运算符。 最佳答案
你说得对,实际上==~
是==
和~
但是一元~
对regex有不同的含义,你认为它是这样的。从fine manual开始:
~rxp→整数或零
match将rxp与$_
的内容匹配。相当于rxp =~ $_
。
$_ = "input data"
~ /at/ #=> 7
通常在命令行中使用
~regex
一行程序,它使用the switches中的一行程序,将ruby封装在一个隐式循环中并设置$_
。考虑这个简单的例子,您将看到发生了什么:
>> $_ = 'pancakes'
=> "pancakes"
>> ~/pancakes/
=> 0
>> 0 ==~ /pancakes/
=> true