gpt4 book ai didi

Ruby 重新开放类——可以访问覆盖的方法吗?

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

我知道如果我将 String 类子类化并覆盖它的 capitalize 方法,我可以使用 super 调用 String 类的 capitalize 版本。如果我重新打开 String 类并重写 capitalize 方法会怎么样?有没有一种方法可以调用该方法的先前版本?

最佳答案

不是开箱即用的。一种常见的方法是将现有方法重命名为新名称。然后,在您重写的版本中,使用新名称调用旧方法。

def String
alias to_i old_to_i
def to_i
#add your own functionality here
old_to_i
end
end

您可能还想看看 alias_method_chain,它会为您做一些这样的事情。

关于Ruby 重新开放类——可以访问覆盖的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284320/

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