2012-02-23 18 views
0

是否有任何情況需要在instance_varaible_set/instance_variable_getattr_writer/attr_reader之間選擇以從外部訪問對象的實例變量?它們在速度方面有什麼不同?instance_variable_set/get與attr_writer/reader

我有印象,如果你想要讓訪問實例變量的打開方法給終端用戶,attr_writer/attr_reader應使用可以很容易,但如果你想私下使用它,你寧願使用instance_varaible_set/instance_variable_get。這種理解是否正確?

回答

1

這是正確的。您可以在類定義內定義attr_accessor/attr_reader/attr_writer以使它們可以訪問(隱式或顯式創建的)實例變量。

如果類不是由您編寫的,也不存在這樣的訪問器,您仍然可以使用instance_variable_get/instance_variable_set來讀/寫私有實例變量。

+0

我實際上運行一個分析器,而且似乎instance_varaible_set/instance_variable_get稍微慢一些。 – sawa 2012-02-24 00:03:57