結論から言いますと、
class内での self
は、そのクラス自身のことを指すことになります。
class Sample
attr_accessor :name, :age
def info
"#{self.name} は、#{self.age} 歳です。"
end
def hoge
self
end
def self.foo
puts 'foo method'
end
end
sample = Sample.new
puts sample
# => #<Sample:0x007fb5b988be38>
puts sample.hoge
# => #<Sample:0x007fb5b988be38>
sample.name = 'タロウ'
sample.age = 20
puts sample.info
# => タロウ は、20 歳です。
puts Sample.foo
# => foo method
puts sample.foo
# => undefined method `foo' for #<Sample:0x007fa0e4840440 @name="タロウ", @age=20> (NoMethodError)
(サンプルが雑で申し訳ないですが)
少し長ったらしくなりましたが、上記のコードの
sample = Sample.new
puts sample
# => #<Sample:0x007fb5b988be38>
puts sample.hoge
# => #<Sample:0x007fb5b988be38>
この部分を見てもらえますと、
そのクラス自信を返しているのが、わかりますでしょうか。
その他にも、特異メソッドと呼ばれるモノがあり
def self.foo
puts 'foo method'
end
ここのメソッドのことなのですが、
self
を付けることによって、その class自身を指す事になりますので、
上記のような状態になります。
rubyのselfの意味と使い方
このあたりの記事では、もう少し詳しく上手く解説、記載されてますので
もう少し理解が深まるかもしれません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/06/08 05:19