在 JavaScript 中,有一种有用的方法可以测试从未在任何给定点定义的变量。例如,如果变量bob尚未定义,以下代码片段将返回true :
typeof(bob)=='undefined'
如何在 Ruby 中完成相同的测试?
编辑:我正在寻找一个本质上同样紧凑的测试。我已经使用异常等提出了一些尴尬的近似值,但这些不是很漂亮!
在 JavaScript 中,有一种有用的方法可以测试从未在任何给定点定义的变量。例如,如果变量bob尚未定义,以下代码片段将返回true :
typeof(bob)=='undefined'
如何在 Ruby 中完成相同的测试?
编辑:我正在寻找一个本质上同样紧凑的测试。我已经使用异常等提出了一些尴尬的近似值,但这些不是很漂亮!
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"
这是一篇很好的文章。
defined?
是一个函数,如果项目未定义,则返回 nil。
defined? somevar
=> nil
somevar = 12
defined? somevar
=> "local-variable"
所以:
if defined?(somevar)
do_something
end
请记住定义?如果定义了变量,则返回一个字符串,否则返回 nil,因此对其结果使用条件检查。我认为语法暗示它将返回一个布尔值。
所有用例:
defined? ur_variable
=> nil
ur_variable= 12
defined? ur_variable
=> "local-variable"
another_variable = nil
defined? another_variable
=> "local-variable"
也可以这样测试。
if somevar.nil
# not set do something
else
# is set do something else
end