【发布时间】:2015-11-05 01:35:00
【问题描述】:
我经常将方法的结果赋值给初始化器中的实例变量:
class MyExample
def initialize
@my_var = test_method
end
def test_method
# does something
end
end
在initialize 中而不是在方法中执行此操作似乎是记忆化的一种特殊情况。我这样做是为了避免显式调用该方法,这使我的代码更具可读性。我还想确保该方法只为实例调用一次。
我没有找到类似这样的代码。
- 除了一般的记忆之外,在初始化程序中执行此操作是否有任何缺点?
- 在某种程度上这会被认为是一种不好的做法吗?为什么?
【问题讨论】:
-
在“代替方法”中,“方法”指向哪个方法?目前尚不清楚“显式调用方法”是什么意思。
-
我没有明确地调用 MyExample.new.test_method。而是我只写了MyExample.new,并且实例变量中test_method的返回值可以用在其他方法中(或者被attr_reader访问,上例中没有包含)。
标签: ruby methods instance-variables memoization