最近のルビーfor Rails読書ノート
1,moduleのmix-in
2つのmoduleは同じメソッドを定義し、いずれもinclude後、後includeのmoduleのメソッドが有効です.
2、グローバル変数は$で始まる
Rubyが持つグローバル変数は
$:あなたがload外部ファイルを検索したときにRubyが検索したpathを表します.
$$はRubyプロセスIDを表します
3,selfの指代
4,Rubyビルトインクラスと重複するクラスを定義する場合,たとえばViolin::Stringを定義する場合,我々はViolinでRubyビルトインのStringクラスを呼び出す場合に,::Stringを用いる.
5,Rubyの3つの役割ドメイン、public/protected/private、デフォルトはpublic
privateメソッドではexplicit receiverは使用できません.implicit receiver selfでのみ呼び出されます.method_名前ではなくobj.method_name
protectedメソッドの呼び出しはselfのclassと呼び出された別のオブジェクトのclassが同じであることを保証する
6,top-levelメソッドはKernelモジュールのprivate instance methods
2つのmoduleは同じメソッドを定義し、いずれもinclude後、後includeのmoduleのメソッドが有効です.
2、グローバル変数は$で始まる
Rubyが持つグローバル変数は
$:あなたがload外部ファイルを検索したときにRubyが検索したpathを表します.
$$はRubyプロセスIDを表します
3,selfの指代
Context Example Which object is self?
Top level of program Any code outside of other blocks main(built-in top-level default object)
Class definition class C The class object C
Module definition module M The module object M
Method definitions 1. Top level main(built-in top-level default object)
def method_name
2. Instance method definition An instance of C, responding to method_name
class C
def method_name
3. Instance method definition in module I. Individual object extended by M
module M II. Instance of class that mixes in M
def method_name
4. Singleton method(including class obj
methods)
def obj.method_name
4,Rubyビルトインクラスと重複するクラスを定義する場合,たとえばViolin::Stringを定義する場合,我々はViolinでRubyビルトインのStringクラスを呼び出す場合に,::Stringを用いる.
5,Rubyの3つの役割ドメイン、public/protected/private、デフォルトはpublic
privateメソッドではexplicit receiverは使用できません.implicit receiver selfでのみ呼び出されます.method_名前ではなくobj.method_name
protectedメソッドの呼び出しはselfのclassと呼び出された別のオブジェクトのclassが同じであることを保証する
6,top-levelメソッドはKernelモジュールのprivate instance methods