gpt4 book ai didi

ruby - alias_method 递归

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:27 24 4
gpt4 key购买 nike

在以下代码中来自 ruby docs ,为什么 orig_exit 最终没有在无限递归中调用自己?

module Mod
alias_method :orig_exit, :exit
def exit(code=0)
puts "Exiting with code #{code}"
orig_exit(code)
end
end
include Mod
exit(99)

最佳答案

why doesn't orig_exit end up calling itself in infinite recursion?

因为这里没有递归。

首先,exit 被调用,从最后一行 (exit(99)) 开始调用 orig_exit,这是一个不同的功能。除非 orig_exit 显式调用 exit(没有理由相信它确实如此),否则不可能进行递归。当 orig_exit 返回时,它的返回值也从 exit 返回。

alias_method 已将 名为 exit 的方法重命名为 orig_exit,然后是一个名为exit 已定义。

关于ruby - alias_method 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293048/

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