Ruby 初心者スレッド Part 48
■ このスレッドは過去ログ倉庫に格納されています
0043デフォルトの名無しさん
2012/02/14(火) 03:43:40.90で、 def self.メソッド名 の中で定義されてるから、
そのクラスを表す、Ruby 組み込みクラスである Class クラスのオブジェクトに属する(=Classクラスのインスタンスに属する)インスタンス変数
class C; end
p C.class #=> Class ← これ
最近はこのインスタンス変数がしょっちゅう使われてて、呼び名がないと説明に困るというので、
「クラスCのクラスインスタンス変数」という呼び方が他の言語から借りて使われてる
ただのインスタンス変数なので、クラスのオブジェクト部分でいわゆるアクセサメソッドを自作するか、
class C << self
attr_reader :var
end
クラスのオブジェクトに対して instance_variable_get/set しないと利用できない
で2、クラスメソッド(=クラスオブジェクトに属するインスタンスメソッド)の定義を def self.hoge のようにドットつきでしてる人であっても、
クラスインスタンス変数のアクセサを作るときは
class クラス名 << self
インスタンスメソッドな書き方
end
という再オープン記述を使うことが多い
■ このスレッドは過去ログ倉庫に格納されています