在 Metaprogramming Ruby 中,我看到了这段代码
class String
def to_alphanumeric
gsub /[^\w\s]/, ''
end
end
在这里,它向标准类 String 添加了一个 to_alphanumeric 方法,该方法用空格替换标点符号。令我困惑的是,由于我们没有指定 gsub 作用于哪个对象,Ruby 怎么知道我们实际上是指 gsub 作用于 String obj 本身而不是其他东西?或者换一种说法,Ruby 会自动重写为 self.gsub 吗?