class << selfについて
https://magazine.rubyist.net/articles/0046/0046-SingletonClassForBeginners.html
このサイトによると
class << self と書いた行から end までの間に def class_method のようにクラス名を書かずにインスタンスメソッドと同じようなメソッド定義を書いていきます。この間に書いたものはクラスメソッドとして定義されます。
という記述があったので試してみる
class Haha
class << self
def lala
puts "クラスメソッドになってる"
end
end
end
Haha.lala
このようにコードを書いたら
$ ruby practice.rb
クラスメソッドになってる
こう出力された
ちゃんとselfをつけずともclassメソッドになってる
一方で
class Haha
class << self
def lala
puts "クラスメソッドになってる"
end
end
end
Haha.new.lala
こうコードを書くとエラー
完全にクラスメソッドになっているから、インスタンスメソッドとしての呼び出しは無理っぽい