gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 06:56:50 26 4
gpt4 key购买 nike

这会在 1.9.2 Ruby 中抛出一个 SystemStackError( 但在 Rubinius 中有效 ):

class Fixnum
def +(other)
self + other * 2
end
end

但是 + 没有 super(基于其他错误)。

如何访问原始的 + 功能?

最佳答案

使用alias_method。将 Fixnum+ 别名为其他内容,然后在新的 + 中引用它:

class Fixnum
alias_method :old_add, :+
def +(other)
self.old_add(other) * 2
end
end

关于ruby - 如何在 Ruby 中重新定义 Fixnum 的 + (plus) 方法并保留原始 + 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9745122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com