Что означает :: в Ruby? Например. Foo::Bar.
Что означает: (двойной двоеточие) в Ruby?
Ответ 1
Когда получатель явно указывается в вызове метода, его можно отделить от имени метода, используя либо период (
.), либо два двоеточия (::). Единственное различие между этими двумя формами происходит, если имя метода начинается с буквы верхнего регистра. В этом случае Ruby предположит, что вызов методаreceiver::Thingфактически является попыткой получить доступ к константе с именемThingв приемнике, если в вызове метода нет списка параметров между круглыми скобками.
Ответ 2
Он называется оператором разрешения области. В принципе, причудливый способ ссылки на класс в пространстве имен. ActiveRecord - это пространство имен, а Base - это класс.
Ответ 3
Он обращается к константам в заданном классе или модуле. Например. ActiveRecord::Base - константа Base, определенная в модуле ActiveRecord.