instance_variable_set / get vs attr_writer / reader

时间:2012-02-23 15:30:08

标签: ruby instance-variables accessor

是否有任何情况我应该在instance_varaible_set / instance_variable_getattr_writer / attr_reader之间进行选择以从外部访问对象的实例变量?它们在速度等方面有何不同?

我的印象是,如果您想让最终用户访问实例变量一个已打开的方法,应该使用attr_writer / attr_reader来简化,但如果您想使用私下里,你宁愿使用instance_varaible_set / instance_variable_get。这种理解是否正确?

1 个答案:

答案 0 :(得分:1)

这是对的。您在类定义中定义attr_accessor / attr_reader / attr_writer以使它们访问(隐式或显式创建)实例变量。

如果您没有编写类并且不存在此类访问器,您仍然可以使用instance_variable_get / instance_variable_set读/写私有实例变量。