==~
运算符在以下代码中的作用是什么?['a','b','c'].join ==~ /b/
# =>false
我尝试了几个不同的数组和字符串,从未收到语法错误,但是==~
似乎是一个正则表达式比较运算符,总是返回false
。
你说的没错,==~
实际上是==
和~
的组合,但对于正则表达式来说,一元的~
所代表的含义与你想象中不同。根据官方手册:
通常在使用命令行一行代码时,您会使用~ rxp → integer or nil
Match—Matches rxp against the contents of
$_
. Equivalent torxp =~ $_
.$_ = "input data" ~ /at/ #=> 7
~regex
和使用其中一个开关,将您的Ruby包装在隐式循环中并设置$_
。>> $_ = 'pancakes'
=> "pancakes"
>> ~/pancakes/
=> 0
>> 0 ==~ /pancakes/
=> true
==
和~
。~
是按位not
或按位补码运算符。当用于正则表达式时,它总是评估为nil。我认为这是因为正则表达式没有有意义的位模式。>~/b/
=> nil
>a=60
=> 60
> ~a
=> -61
a
,它存储了60作为Fixnum,在x86上实际上存储的是00111100
。在这种情况下,~a
返回由11000011
表示的值,即-61。
= =~
没有意义。 - sawa== ~
Тў»тЏаСИ║~
У┐љу«ЌугдТ»ћ==
тњї= ~
У┐љу«ЌугдС╝ўтЁѕу║ДТЏ┤жФўсђѓ - Shoe