Ruby self in layman terms?

前端 未结 3 535
梦毁少年i
梦毁少年i 2021-01-06 07:45

When is Ruby self refering to the Object and when is self refering to the Ruby class? Explanations with examples would be great. Not getting my head around this.

3条回答
  •  执笔经年
    2021-01-06 08:23

    Classes are actually objects themselves. Lets say that I have a class Person, this is actually an instance of Class. So you can have self refer to an instance of Article, or you can have self refer to the instance of the class, Article.

    In the most simple example I can think of:

    class Person
      def initialize
        p "Info about Person Instance"
        p self
        p self.class
      end
    
      p "Info about Person Class"
      p self
      p self.class
    end
    
    
    person = Person.new
    

    It prints:

    "Info about Person Class"
    Person
    Class
    "Info about Person Instance"
    #
    Person
    

    To read more about about self, I highly recommend read this.

提交回复
热议问题