我想在 Ruby 中向 String 类添加一个自定义方法。我知道可以使用以下代码完成:
class String
def my_own_method
# impelementation comes here
end
end
如果我将该代码写在一个文件中,比如“string.rb”和其他地方,即在 irb 中,那么我写的require "string"
那么它工作得很好,我可以访问任何字符串对象上的自定义方法。但是,当我想将自定义代码打包到这样的模块中时,就会出现问题:
module A
class String
def my_own_method
# implementation
end
end
end
然后,当我包含模块时(没有错误),我无法访问每个字符串对象上的方法,除非我通过调用直接实例化一个字符串,比如s = A::String.new
. 在这种情况下,我可以访问我的自定义方法,但只能访问s变量,而不是任何字符串对象。我应该怎么做才能打包我的 util 类并自动将它们的方法添加到基类中?非常感谢任何帮助。