Rubyでのメタクラスとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > Rubyでのメタクラスの意味・解説 

Rubyでのメタクラス

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/06 12:23 UTC 版)

メタクラス」の記事における「Rubyでのメタクラス」の解説

Rubyでは、クラス自体Classというクラスインスタンスであり、Class.newという形でクラス動的に生成するともできるClassModule継承しており、動的なメソッド操作といったクラスに共通な機能があるほか、特異メソッド(あるオブジェクトだけに有効なメソッド)を使うことで、Smalltalk-76のような単一メタクラスクラスごとの多様性もたせることができる。具体的には、存在しないメソッド呼び出しや、継承メソッド追加といったタイミング呼び出されるフック関数特異メソッドとして実装することができる。 RubyMOPは、継承インスタンス化ループ関係がない平易なものであり、BasicObject発のトップダウン継承ツリー構造になっている。だが、特異クラスの方はやや複雑になる。(右図参照Ruby特異クラス(eigenclassとも)は、SmalltalkのimplicitクラスFoo classとか)を置き換えたのである。 まず、ユーザー定義クラスメタクラスであるClassまでの継承関係を下に示す。 BasicObject - 大元Kernel - 全共通デフォルトメソッドを定義している。Objectインクルードされる Object - 全てのクラススーパークラス Module - モジュールクラスユーザー定義モジュール定義できる Class - クラスクラスユーザー定義クラス定義できる RubyではクラスAランタイム改装メソッド追加など)すると、その特異クラスの方が改装されてそれがクラスA反映されるようになっているクラスA定義するClass←Aの特異←Aのメタクラス関係ができるが、ここでAのサブクラスBを定義すると、Class←Bの特異←Bのメタクラス関係もできて、Aの特異←Bの特異継承関係もできる。

※この「Rubyでのメタクラス」の解説は、「メタクラス」の解説の一部です。
「Rubyでのメタクラス」を含む「メタクラス」の記事については、「メタクラス」の概要を参照ください。

ウィキペディア小見出し辞書の「Rubyでのメタクラス」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Rubyでのメタクラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Rubyでのメタクラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのメタクラス (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS