2012-04-22 6 views

答えて

2

これは、クラスが別のクラスまたはモジュールの内部にあることを意味します。

module Foo 
    class Bar 
    end 
end 

あなたはちょうどそのようバークラスに参照することはできません、あなたは他のモジュール内の他のバーのクラスがあるかもしれません(Foo::Bar、その完全修飾名を使用する必要があるので、あなたはそれらを区別できるようにする必要があります)。

+0

あなたの答えに感謝します –

+0

あなたは有益な回答を受け入れるべきです。 –

+0

いいえ、クラスがモジュール内にあるわけではありません。これは、* constant *がモジュール内部にあることを意味します。 RubyにはBetaやNewspeakのようなネストされたクラスはありません。 –

0

二重コロンはモジュールを示します。何度もクラス名が衝突して、新しいモジュールが作成される可能性があります。例えば

...クラスまたはモジュールの定数を(全て大文字オブジェクトは、VALUE_CONSTANTやクラス名などの定数である)を取得する場合ActiveRecord::Base

0

ダブルコロンが使用されます。これはC++の名前空間の概念から継承された規約で​​す。

だからここ大会のリスト:

Module/Class::CONSTANT 
Module/Class::Class 
Module/Class.method 
関連する問題