新手问题 在一个函数内定义另一个函数性能方面是否和非嵌套性能相同

lilijreey · 2020年08月06日 · 最后由 lilijreey 回复于 2020年08月06日 · 1285 次阅读

有时候写递归算法时往往小创建一个递归算法的函数,但是又不想写到外面 所以会这样写

def xxx(a,b)
    def xxx_impl(a,b,t)
     ....
     xxx_imple(a,b,t+1)
    end
    xxx_impl(a,b,0)
end

请问这种方式有性能上的问题吗

性能估计没有差别。一旦执行了外部方法,内部方法就会被定义在类中,整个类均可见,不会因为外部方法执行完毕而 undef 内部方法。跟直接定义在类中没有差别,反而显得奇怪。你还不如内部用 lambda

spike76 回复

多谢,lamdba 不太用不知道怎么写。 😂

需要 登录 后方可回复, 如果你还没有账号请 注册新账号