включить охрану в рубине - PullRequest
4 голосов
/ 13 июля 2009

Что такое идиоматический способ добавить охрану включения в файл ruby, аналогичный

#ifdef FOO_H
#define FOO_H
...

#endif

в С?

Ответы [ 2 ]

11 голосов
/ 13 июля 2009

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

6 голосов
/ 14 июля 2009

Как говорит Крис Джестер-Янг, require должно быть всем, что вам нужно. Тем не менее, вы можете использовать простой if или аналогичный в качестве «включенного» охранника, если вы хотите сделать его сами, например ::1003*

unless defined? FooGuard
  FooGuard = true
  ... rest of code ...
end

Вы можете сделать что угодно в теле if, включая определения классов, методов и т. Д.

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