0
我ClassA
使用实例变量,包括几个模块中包含的模块
class ClassA
include Module1
include Module2
def initialize()
@some_var = ...
end
end
包含的模块有使用实例变量的方法@some_var
module Module1
def method1
@some_var.a()
end
end
module Module2
def method2
@some_var.b()
end
end
下面的代码工作正常,并正确
obj = ClassA.new
obj.method1
obj.method2
但我不知道它是正确使用包含模块中的实例变量。也许我需要实现另一个架构。
谢谢!使用attr_reader是最适合我的方式。第二个例子非常丑陋:) –
我同意你的回答,但是如果你打算使用实例变量,我不会看到'instance_variable_get'与正常使用实例变量相比有什么优势。 – Max
@Max:对。我想了一会儿,ivars没有工作。我重新检查,他们实际上工作。因此我删除了答案的第二部分。 –