ruby – 在模块的上下文中将方法添加到基类
发布时间:2020-12-17 03:47:30 所属栏目:百科 来源:网络整理
导读:我想在 Ruby中为String类添加一个自定义方法.我知道可以使用以下代码完成: class String def my_own_method # impelementation comes here endend 如果我将该代码写入文件中说“string.rb”和其他地方,例如irb,我写需要“string”然后它工作得很好,我可以访
我想在
Ruby中为String类添加一个自定义方法.我知道可以使用以下代码完成:
class String def my_own_method # impelementation comes here end end 如果我将该代码写入文件中说“string.rb”和其他地方,例如irb,我写需要“string”然后它工作得很好,我可以访问任何字符串对象上的自定义方法. module A class String def my_own_method # implementation end end end 然后,当我包含模块(没有错误)时,我无法访问每个字符串对象上的方法,除非我通过调用s = A :: String.new直接实例化字符串.在这种情况下,我可以访问我的自定义方法,但只能访问不在任何字符串对象上的s变量.我该怎样做才能打包我的util类并自动将它们的方法添加到基类中?任何帮助都非常感谢. 解决方法
一种选择是使用::来确保你抓住顶级的String类:
module A class ::String def my_own_method self.reverse end end end "some string".my_own_method # => "gnirts emos" 我也必须同意塞尔吉奥在答案结束时的观点.不确定是否需要这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |