この二重コロンとは何でしょうか::
?例Foo::Bar
:
私は見つけた意味:
は
::
、クラスまたはモジュール内で定義された定数、インスタンス メソッド、クラス メソッドに、クラスまたはモジュールの外部のどこからでもアクセスできるようにする単項演算子です。
何でも公開するために使用できる場合、スコープ (プライベート、保護) は何の役に立つのでしょうか::
?
ベストアンサー1
::
は基本的に名前空間解決演算子です。これにより、モジュール内の項目、またはクラス内のクラスレベルの項目にアクセスできます。たとえば、次のような設定があるとします。
module SomeModule
module InnerModule
class MyClass
CONSTANT = 4
end
end
end
CONSTANT
モジュールの外部からは としてアクセスできますSomeModule::InnerModule::MyClass::CONSTANT
。
クラスで定義されたインスタンス メソッドには影響しません。異なる構文 (ドット.
) を使用してアクセスするためです。
関連メモ: トップレベルの名前空間に戻りたい場合は、次のようにします: ::SomeModule –ベンジャミン・オークス