Имеет ли слово «константа» два значения? - PullRequest
0 голосов
/ 12 июня 2018

Сегодня я узнал о методе ruby ​​constantize, который при вызове в строке ищет любой класс или модуль с тем же именем и устанавливает его в качестве этого класса или модуля.

Мое пониманиеслова «константа» всегда было «переменной, которую вы не можете изменить после инициализации».Есть ли другое определение «константы», которое означает «класс или модуль?»

Или я неправильно понимаю constantize полностью?

1 Ответ

0 голосов
/ 12 июня 2018

В Ruby вещи, начинающиеся с заглавной буквы, являются константами.Они не могут быть назначены в динамическом коде, например, внутри метода, который может быть вызван дважды.(Вы получаете неприятное предупреждение, когда такой код все равно вычисляется дважды, например, из-за нетерпеливого load ing ...)

Таким образом, class Foo назначает константу Foo, значением которой является класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...