メタプログラミングRuby(月曜日)
面白かったところ、知らなかったことなどのメモ
Ruby東海でメタプログラミングRubyの読書会が始まるのでその予習
Rubyのクラス宣言
3.times do class C puts "Hellow" end end
これがclass Cを3回宣言したということじゃないということ
つまりRubyにおけるclassキーワードはクラスの宣言ではなく
単なるスコープ演算子のようなものだということ
オブジェクトとクラスのまとめ
- オブジェクトのインスタンス変数はオブジェクトに存在する
- オブジェクトのメソッドはクラスに存在する
- 実はクラスはClassクラスのオブジェクト
- 1.9からはObjectクラスの上位にBasicObjectってのがある
- ClassクラスはModuleクラスのサブクラス
- クラスは単にnew,allocate,superclassを追加したモジュール
クラスはClassクラスのオブジェクトってのが頭になじみにくい
メソッド呼び出し
- privateメソッドとは「明示的なレシーバをつけてプライベートメソッドを呼び出すことはできない」というルールに従って実装されている
- 3つ目のprintはKernel