• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

实例变量:自VS @

ruby 来源:sarunw 6次浏览

下面是一些代码:实例变量:自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 

我想知道的是在age_difference_with方法使用@ageself.age之间的差异。

===========解决方案如下:

写入@age直接访问实例变量@age。写入self.age告诉对象自己发送消息age,它通常会返回实例变量@age – 但可以执行任意数量的其他操作,具体取决于在给定子类中如何实现age方法。例如,你可能有一个MiddleAgedSocialite类,它总是报告比其实际年龄小10岁的年龄。或者更实际上,PersistentPerson类可能懒惰地从持久性存储中读取数据,将其所有持久数据缓存在散列中。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)