Ruby のダブルコロン `::` とは何ですか? 質問する

Ruby のダブルコロン `::` とは何ですか? 質問する

この二重コロンとは何でしょうか::?例Foo::Bar

私は見つけた意味:

::、クラスまたはモジュール内で定義された定数、インスタンス メソッド、クラス メソッドに、クラスまたはモジュールの外部のどこからでもアクセスできるようにする単項演算子です。

何でも公開するために使用できる場合、スコープ (プライベート、保護) は何の役に立つのでしょうか::?

ベストアンサー1

::は基本的に名前空間解決演算子です。これにより、モジュール内の項目、またはクラス内のクラスレベルの項目にアクセスできます。たとえば、次のような設定があるとします。

module SomeModule
    module InnerModule
        class MyClass
            CONSTANT = 4
        end
    end
end

CONSTANTモジュールの外部からは としてアクセスできますSomeModule::InnerModule::MyClass::CONSTANT

クラスで定義されたインスタンス メソッドには影響しません。異なる構文 (ドット.) を使用してアクセスするためです。

関連メモ: トップレベルの名前空間に戻りたい場合は、次のようにします: ::SomeModule –ベンジャミン・オークス

おすすめ記事