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