What is Ruby's double-colon `::`?

后端 未结 10 2153
南笙
南笙 2020-11-22 10:09

What is this double-colon ::? E.g. Foo::Bar.

I found a definition:

The :: is a unary operator that all

10条回答
  •  旧巷少年郎
    2020-11-22 10:45

    :: is basically a namespace resolution operator. It allows you to access items in modules, or class-level items in classes. For example, say you had this setup:

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

    You could access CONSTANT from outside the module as SomeModule::InnerModule::MyClass::CONSTANT.

    It doesn't affect instance methods defined on a class, since you access those with a different syntax (the dot .).

    Relevant note: If you want to go back to the top-level namespace, do this: ::SomeModule – Benjamin Oakes

提交回复
热议问题