Ste*_*ann 2 ruby regex operators
Ruby !~记录在哪里?我期望它在Regexp页面或String页面上,但它不在那里.虽然=~在Regexp页面上出现49次,在String页面上出现8次.
您可以使用method查找方法的所有者:
''.method(:!~)
#=> #<Method: String(Kernel)#!~>
//.method(:!~)
#=> #<Method: Regexp(Kernel)#!~>
Run Code Online (Sandbox Code Playgroud)
!~在Kernel模块中定义,包含在Object:
String.ancestors
#=> [String, Comparable, Object, Kernel, BasicObject]
Regexp.ancestors
#=> [Regexp, Object, Kernel, BasicObject]
Run Code Online (Sandbox Code Playgroud)
并且因为Kernel包含在(每个)中Object,Object为了方便起见,它的实例方法被记录在案.(或文件中所说的"清晰度",但IMO使其不那么清晰)
所以这里是: Object#!~
obj!〜其他→真或假
返回
true两个对象不匹配(使用=~方法),否则返回false.