dev/mom0tomo

技術メモ

selfを理解する

mom0tomo.hateblo.jp 前回の続き。

selfについて、実務であまり使うこともなくちゃんと理解しているのが怪しかったので確認する。


self は、クラス内部の変数やメソッドを明示して使うときに利用する。

class Person
  attr_accessor :name, :age

  def initialize
    self.name = 'もも'
    self.age = 22
  end

def cording(programing_language)
    puts "#{self.name}#{programing_language}を利用しています。"
  end
end

mom0tomo = Person.new
mom0tomo.cording('Go言語ʕ ◔ϖ◔ʔ') # ももはGo言語ʕ ◔ϖ◔ʔを利用しています。
p mom0tomo # #<Person:0x00007fa1b684d640 @name="もも", @age=22>

selfは、呼び出されたときのインスタンス (ここではmom0tomo)を指す。

つまり、mom0tomoインスタンスから cording('Go言語ʕ ◔ϖ◔ʔ')メソッドが呼び出されたとき、

mom0tomo.cording('Go言語ʕ ◔ϖ◔ʔ')

mom0tomo. が、 self. に代入される。