任何人都可以解释通过self.attribute
和@attribute
访问实例属性之间的区别吗?
答案 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/