Подтвердить что ты не робот

Тестирование переменных undefined в Ruby a la JavaScript?

В JavaScript есть полезный способ проверить переменную, которая никогда не была определена в любой заданной точке. Например, следующий фрагмент кода вернет true, если переменная bob не определена:

typeof(bob)=='undefined'

Как выполнить тот же тест в Ruby?

edit: Я ищу тест, который столь же компактен по своей природе. Я придумал некоторые неудобные аппроксимации с использованием исключений и т.д., Но это не очень красиво!

4b9b3361

Ответ 1

defined?(variable_name)

irb(main):004:0> defined?(foo)
=> nil
irb(main):005:0> foo = 1
=> 1
irb(main):006:0> defined?(foo)
=> "local-variable"

Вот хороший напишите на нем.

Ответ 2

defined? - это функция, которая возвращает nil, если элемент undefined.

defined? somevar
=> nil
somevar = 12
defined? somevar
=> "local-variable"

Итак:

if defined?(somevar)
  do_something
end

Ответ 3

Имейте в виду, что это определено? возвращает строку, если переменная определена, nil, если это не так, поэтому используйте условную проверку ее результатов. Я думаю, что синтаксис ссылается на то, что он вернет логическое значение.

Ответ 4

Все варианты использования:

defined? ur_variable
=> nil

ur_variable= 12
defined? ur_variable
=> "local-variable"

another_variable = nil
defined? another_variable
=> "local-variable"

Ответ 5

Также можно проверить этот способ.

   if somevar.nil
        # not set do something
    else
        # is set do something else
    end