Что делает:: (удвойте двоеточие), средний в Ruby? [дубликат]

20
задан Andrew Marshall 12 September 2013 в 13:34
поделиться

3 ответа

Он обращается к константам в данном классе или модуле. Например. ActiveRecord :: Base - это константа Base , определенная в модуле ActiveRecord .

3
ответ дан 30 November 2019 в 00:19
поделиться

Это называется оператором разрешения области видимости. По сути, это причудливый способ ссылки на класс в пространстве имен. ActiveRecord - это пространство имен, а Base - это класс.

9
ответ дан 30 November 2019 в 00:19
поделиться

От Pickaxe:

Когда приемник явно указан в вызове метода, он может быть отделен от имени метода с помощью точки (.) или двух двоеточий (::). Единственное различие между этими двумя формами возникает, если имя метода начинается с заглавной буквы. В этом случае Ruby будет считать, что вызов метода receiver::Thing на самом деле является попыткой доступа к константе с именем Thing в приемнике, если в вызове метода нет списка параметров между круглыми скобками.

22
ответ дан 30 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: