在哪里!〜有记录吗?

Ste*_*ann 2 ruby regex operators

Ruby !~记录在哪里?我期望它在Regexp页面String页面上,但它不在那里.虽然=~在Regexp页面上出现49次,在String页面上出现8次.

Ste*_*fan 5

您可以使用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.