エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Rubyライブラリのソースコードを読んでいると、よく class << self という構文が出てきます。 ↓こんなの... Rubyライブラリのソースコードを読んでいると、よく class << self という構文が出てきます。 ↓こんなの class C class << self def foo puts 'foo' end end end C.foo #foo 最初見た時は?と思いましたが、ようはこれ(クラスメソッド定義)と同じでした。 class C def self.foo puts 'foo' end end C.foo #foo 肝は ・クラスメソッドとは、クラスの特異クラスのインスタンスメソッドである ・class << obj; endは、objの特異クラスを開く という2点 なので、さきほどのコードに解説をつけるとこうなります class C class << self # クラスCの特異クラスをオープン(このselfはクラスCなので) def foo # クラスCの特異クラスのインスタン