способ удалить глобальную переменную в Ruby? - PullRequest
3 голосов
/ 12 ноября 2011

Я знаю, что могу просматривать все глобальные переменные через Kernel # global_variables, но есть ли способ их удаления, схожий с методами remove_instance_variable, remove_class_variable, remove_const? Или есть способ использовать их для достижения того же?

1 Ответ

0 голосов
/ 04 февраля 2015

Я не верю, что возможно "сбросить" глобальную переменную. Лучше всего установить значение переменной nil.

Обычно, когда вы пытаетесь использовать переменную, которую вы еще не определили, Ruby выдает ошибку.

irb > "The following variable has not yet been defined: #{a}"
irb > NameError: undefined local variable or method `a' for main:Object

Это поведение на самом деле отличается от глобальных переменных. Любая попытка вызвать глобальную переменную, которая не была определена, вернет nil.

irb > "The following global variable has not yet been defined: #{$a}"
  # => The following global variable has not yet been defined: 
irb > $a.class
  # => NilClass

Таким образом, установка вашей глобальной переменной равной nil должна вести себя точно так же, как вы ожидаете от ее «отмены».

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