Постоянное поведение Ruby / Rails - PullRequest
1 голос
/ 13 сентября 2010

Я новичок в Ruby (из Java), и мне было интересно, каково поведение констант в приложениях RoR и вообще в Ruby.

Являются ли они только один раз инициализированными, как статические переменные Java?

Я инициализирую довольно большой массив хэшей как константу, поэтому я хочу быть уверен, правильно ли я это делаю?

Спасибо за вашу помощь.

module MyModule

  MY_CONST = [{...}, {...}, {...}, {...}, {...}, ...]

1 Ответ

2 голосов
/ 13 сентября 2010

Не совсем.Из раздела Переменные и константы Руководства по программированию на Ruby:

...

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

MY_CONST = 1
MY_CONST = 2   # generates a warning

создает:

prog.rb:2: warning: already initialized constant MY_CONST
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...