谁能解释通过self.attribute和通过访问实例属性之间的区别@attribute?
Answers:
self.attribute调用方法attribute。以参数
self.attribute = value调用方法。并获取/设置实例变量的值。attribute=value
@attribute@attribute = value@attribute
因此,基本上,它们是完全不同的两件事。
但是,如果调用attr_accessor :attribute它,则定义attribute要返回@attribute的方法和attribute=(value)要设置的方法@attribute = value。因此,在那种情况下,没有区别。
“直接访问实例变量比使用访问器方法访问实例变量快大约两倍”
查看以下网址:https : //www.greyblake.com/blog/2012-09-01-ruby-perfomance-tricks/
self.即使您当前拥有,通常也建议使用(除非您正在编写getter / setter方法)attr_accessor。如果您以后将访问器方法更改为不仅仅是获取/设置实例变量,还可以保护您免受其他重构工作和错误的侵害。(或者其他人对您的工作进行修补或子类化。)