实例变量:self vs @

沙鲁

这是一些代码:

class Person
  def initialize(age)
    @age = age
  end

  def age
    @age
  end

  def age_difference_with(other_person)
    (self.age - other_person.age).abs
  end

  protected :age
end

我想知道的是in@ageself.ageinage_difference_with方法之间的区别

卡盘

@age直接访问实例变量@age编写过程self.age告诉对象向自己发送消息age,该消息通常将返回实例变量@age-但可以执行任何其他操作,具体取决于在age给定子类中如何实现方法。例如,您可能有一个MiddleAgedSocialite类,该类始终报告其年龄比实际年龄小10岁。或更实际地说,PersistentPerson类可能会从持久性存储中延迟读取该数据,并将其所有持久性数据缓存在哈希中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章