3
只要好奇,在假設attr_accessor被設置的情況下,從類內部訪問實例變量的最佳做法是什麼。Ruby實例變量訪問
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)或吸氣劑的方法(試驗#用戶)
所以?
這個想法是紅寶石不可知的。請參閱http://stackoverflow.com/questions/3069901爲什麼屬性應該優於字段。 – Gishu 2012-01-11 05:14:55
如果僅添加attr_accessor以供內部使用,該怎麼辦?我不需要這些屬性來進行外部訪問,所以在那個時候,添加attr_accessor是不必要的,因此在內部使用實例變量來獲取/設置更有意義? – user577808 2012-01-11 12:20:24
@ user577808在類中應用相同的原則,但上下文越小,重要性越低,因爲重構更容易。但是,最好公開一個類的最小接口,所以在這種情況下,如果使用get/set,它應該是私有的。 – Mori 2012-01-11 14:25:31