加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何在Ruby中重新定义Fixnum的(加)方法并保留原始功能?

发布时间:2020-12-17 04:23:30 所属栏目:百科 来源:网络整理
导读:这引发了我在1.9.2 Ruby中的SystemStackError(但在Rubinius中工作): class Fixnum def +(other) self + other * 2 endend 但是没有超级(基于其他错误). 如何访问原始功能? 解决方法 使用alias_method.别名Fixnum是其他东西,然后在新的中引用它: class Fix
这引发了我在1.9.2 Ruby中的SystemStackError(但在Rubinius中工作):
class Fixnum
  def +(other)
   self + other * 2
  end
end

但是没有超级(基于其他错误).

如何访问原始功能?

解决方法

使用alias_method.别名Fixnum是其他东西,然后在新的中引用它:
class Fixnum
  alias_method :old_add,:+
  def +(other)
    self.old_add(other) * 2
  end
end

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读