代码之家  ›  专栏  ›  技术社区  ›  dahpgjgamgan

鲁比:如何用记忆装饰一种方法?

  •  4
  • dahpgjgamgan  · 技术社区  · 16 年前

    假设我有一个Ruby类:

    class Test
      def method(arg1, arg2)
        return arg1+arg2
      end
    
      memoize :method
    end
    

    我想记住它的结果。因此为了调试的目的,我修改了类如下:

    class Test
      def method(arg1, arg2)
        puts 'sth to make sure the method was executed'
        return arg1+arg2
      end
      ...
    end
    

    并编写了一个使用相同参数调用该方法的测试,以查看get输出了什么…好吧,这个方法不是记忆化的。正确的方法是什么?

    2 回复  |  直到 15 年前
        1
  •  8
  •   sepp2k    16 年前

    memoize :method 在类体内部,记住方法 Test.method . 但是,您要记住实例方法 Test#method . 这样做使用 回忆录:方法 里面 Test 的初始化方法。(确保包括 Memoize 模块进入 试验 首先)。

        2
  •  0
  •   Leventix    16 年前
    推荐文章