に私は(:)実験用)のコードを書きました。是正?メタクラスは、Ruby
1
A
答えて
3
書籍「"Metaprogramming Ruby" of Paolo Perrotta」では、メタクラスという用語は1回だけ言及されていますが、代わりに「固有クラス」という用語が頻繁に使用されます。あなたの例のクラスAの固有クラスはメタクラスであり、独自のメタクラス(メタクラスではありません)を持っています。だから私はあなたの例を拡張しようとしましたが、このチェーンは決して終わりませんようだ:
class Eigen
class << self
def getMetaclass
self
end
def getMetaMetaClass
class << self
self
end
end
def getMetaMetaMetaClass
class << self
class << self
self
end
end
end
end
end
if __FILE__ == $0
puts Eigen.getMetaclass
puts Eigen.getMetaMetaClass
puts Eigen.getMetaMetaMetaClass
end
結果はここにある:
ルビーeigen.rb
Eigen
#<Class:Eigen>
#<Class:#<Class:Eigen>>
Iこのような構造ではどうすればいいのか分かりません:-)
0
私は、固有クラスはc彼らが必要とされるときには、そうであれば、「カメは一番下に」アプローチすることができます。
関連する問題
- 1. Ruby:メタクラスとクラス変数
- 2. Rubyのメタクラスにアクセスするには
- 3. Groovyは:メタクラス
- 4. GroovyのはExpandoメタクラス
- 5. メタクラスと__prepare__()
- 6. PythonメタクラスとModGrammar
- 7. メタクラスとメソッド
- 8. Pythonのメタクラス
- 9. クラスとメタクラスの__dir __()
- 10. Pythonのメタクラスのタイプエラー
- 11. メタクラスにはメソッドがありますか?
- 12. クラスのメタクラスを変更するには
- 13. メタクラスとC++でのリフレクション
- 14. インスタンス化中のシングルトン、メタクラス、エラー
- 15. Pythonサブクラスのトラッキング - メタクラスとビルトイン
- 16. import apache_beamメタクラスの競合
- 17. クラスメソッドをデフォルトにするメタクラス?
- 18. pythonメタクラスの継承問題
- 19. TypeError:メタクラスの競合:派生クラスのメタクラスは、すべてのベースのメタクラスの(厳密ではない)サブクラスでなければなりません。
- 20. オブジェクトベースのメタクラスがメタクラスの競合を引き起こすのはなぜですか?
- 21. Extjsストアのフィルタリング - メタクラスを含む
- 22. メタクラスの "__call__" と製品・クラスの "__init__"
- 23. Djangoモデルでメタクラスを継承する
- 24. メソッドの分解順序とメタクラス
- 25. メタクラスにメソッドを追加する
- 26. ユニットテストのメタクラスとPythonの内部クラス
- 27. Rubyメタクラスが与えられていると、それがどのインスタンスに付属しているのですか?
- 28. Groovyの - 私たちは、単純なGroovyのクラス持っメタクラス
- 29. django:モデルとフィールドはメタクラスで何をするのですか?
- 30. Groovyメタクラスを適切に初期化する場所は?