🖥

Ruby のオープンクラスとは (メタプログラミングRuby)

2023/08/26に公開

Rubyでは定義済みのクラスでも、何度でも開いて、中身をいじることが出来る。
これをオープンクラスという。

クラスを定義

クラスメソッドを1個作る。

class A
  def some_method
    p :some_method
  end
end

また定義

メソッドをもう1個作る。

class A
  def new_method
    p :new_method
  end
end

すると‥

どちらのメソッドも呼べるようになる

A.new.some_method # :some_method
A.new.new_method # :new_method

なんでもアリ

Integer クラスなど、元から存在するクラスでもオープンして書き換えられる。

class Integer
  def some_method
    p :some_method
  end
end

1.some_method # :some_method
2.some_method # :some_method

参考

  • メタプログラミングRuby

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-06-02

Discussion