Скрытие переменных в Ruby - PullRequest
0 голосов
/ 17 марта 2012

Как лучше всего скрывать переменные в файле Ruby, например, эквивалентно закрытию (function () {}) () в JavaScript?

Итак, если у меня есть файл:

foo = 5
bar = foo * foo

Я хочу показывать бар, а не foo только тогда, когда это кому-то нужно.

Ответы [ 2 ]

6 голосов
/ 17 марта 2012

Если у вас есть файл, содержащий эти две строки, и кто-то требует этот файл, ни одна из двух переменных не будет отображена.Локальные переменные по-прежнему являются локальными для файла, даже если они появляются в глобальной области видимости.

Если вы хотите выставить bar, вам необходимо превратить его в глобальную переменную $bar или, если выне намеревайтесь изменить переменную на постоянную Bar.Если вы не сделаете то же самое для foo, оно автоматически не будет открыто.

Вы также можете рассмотреть возможность обернуть все это в модуль или класс.

1 голос
/ 17 марта 2012

Ruby имеет область действия, как и многие другие языки.Переменные объявляются при первом использовании и имеют область видимости в зависимости от того, где они объявлены.Если вы используете локальную функцию:

def do_something
  foo = 5
  foo * foo
end

puts do_something

Она напечатает 25, но foo не будет доступна вне функции do_something.

Это то, что вы ищетеfor?

В этом посте более подробно рассказывается о том, как работает Ruby Правила Ruby Scoping .

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