是否有任何情况我应该在instance_varaible_set
/ instance_variable_get
或attr_writer
/ attr_reader
之间进行选择以从外部访问对象的实例变量?它们在速度等方面有何不同?
我的印象是,如果您想让最终用户访问实例变量一个已打开的方法,应该使用attr_writer
/ attr_reader
来简化,但如果您想使用私下里,你宁愿使用instance_varaible_set
/ instance_variable_get
。这种理解是否正确?
答案 0 :(得分:1)
这是对的。您在类定义中定义attr_accessor
/ attr_reader
/ attr_writer
以使它们访问(隐式或显式创建)实例变量。
如果您没有编写类并且不存在此类访问器,您仍然可以使用instance_variable_get
/ instance_variable_set
读/写私有实例变量。