只是好奇,假设设置了attr_accessor,从类中访问实例变量的最佳做法是什么。
class Test
attr_accessor :user
def initializer(user)
@user = user
end
def foo
@user
end
end
或
class Test
attr_accessor :user
def initializer(user)
@user = user
end
def foo
self.user
end
end
那么通过实例变量(@user)或getter方法(Test#user)?
答案 0 :(得分:7)
Getter方法,因为它更容易重构。假设您要在访问点更新时间戳。
class Test
def user
@user.last_read = Time.now
@user
end
end
所有对user
的引用都会使用新逻辑进行更新。如果您的引用是@user
,那就不那么容易了。