1. ホーム
  2. ruby

[解決済み] Rubyのダブルコロン `::` とは何ですか?

2022-02-16 14:20:46

質問

このダブルコロンとは :: ? 例 Foo::Bar .

を発見しました。 定義 :

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

スコープ(private,protected)の意味は、単に :: を使えば、何でも公開できるのでは?

どのように解決するのですか?

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

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

にアクセスすることができます。 CONSTANT として、モジュールの外から SomeModule::InnerModule::MyClass::CONSTANT .

クラスで定義されたインスタンスメソッドには別の構文でアクセスするため、影響はありません(ドットは . ).

関連メモ: トップレベルの名前空間に戻りたい場合は、次のようにしてください: ::SomeModule -... ベンジャミンオークス