- 420 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 19:30:18 ]
- てか、クラスメソッドの起動で :: を使う人は Ruby ではまずいない
Ruby では :: の右に来るのは定数で、 . の右に来るのはメソッドだから Ruby ではクラスも定数として格納されてるから、 irb> CONST = 1 irb> CONST = 2 (irb)2: warning: already initialized constant CONST irb> class Foo; end irb> Foo = 2 (irb):4: warning: already initialized constant Foo ネストしたクラスは Foo::Bar::Baz と :: で連結するし、 あるクラス Hoge の定数 CONST は :: で連結して Hoge::CONST と綴る Ruby ではインスタンスメソッドは一般クラスから作られたオブジェクトに属するメソッドだから、 特定のクラスのオブジェクトというかインスタンス s に属するインスタンスメソッド mes は 特定のクラスのインスタンス s に . でメソッドを繋げて s.mes と書くし、 Ruby では スクリプト中に存在するアクセス可能なクラスは Class(または Module)クラスのインスタンスだから、 irb> p "str".class String irb> p String.class Class クラス S に属するメソッドつまりクラスメソッド moge は Class クラスのインスタンス S に . でメソッドを繋げて S.moge と表現する
|

|