直接访问实例变量与使用访问器方法

时间:2011-01-09 13:16:15

标签: ruby instance-variables accessor

任何人都可以解释通过self.attribute@attribute访问实例属性之间的区别吗?

2 个答案:

答案 0 :(得分:99)

self.attribute调用方法attribute self.attribute = value使用参数attribute=调用方法value @attribute@attribute = value获取/设置实例变量@attribute的值。

所以基本上他们是完全不同的两件事。

但是,如果您致电attr_accessor :attribute,则会定义方法attribute以返回@attribute,方法attribute=(value)来设置@attribute = value。所以在这种情况下,没有区别。

答案 1 :(得分:3)

"直接访问实例变量比使用访问器方法访问它们快两倍#34;

查看:http://greyblake.com/blog/2012/09/02/ruby-perfomance-tricks/