在JavaScript中,有一种有用的方法来测试一个从未在任何给定点定义过的变量。例如,如果变量bob尚未定义,则以下代码片段将返回true:
typeof(bob)=='undefined'
如何在Ruby中完成相同的测试?编辑:我正在寻找一个测试,这是同样紧凑的性质。我已经想出了一些笨拙的近似使用异常等,但这些都不是很漂亮!
nc1teljy1#
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"
这里有一个很好的write up就可以了。
yrdbyhpb2#
defined?是一个函数,如果项未定义,则返回nil。
defined?
defined? somevar => nil somevar = 12 defined? somevar => "local-variable"
所以:
if defined?(somevar) do_something end
zc0qhyus3#
请记住,定义?如果变量已定义,则返回字符串,如果未定义,则返回nil,因此对其结果使用条件检查。我认为语法暗示它将返回布尔值。
pbpqsu0x4#
所有可能的情况
irb(main):001:0> defined? ur_variable => nil irb(main):001:0> ur_variable= 12 irb(main):002:0> defined? ur_variable => "local-variable" irb(main):001:0> another_variable = nil irb(main):002:0> defined? another_variable => "local-variable"
kqlmhetl5#
也可以这样测试。
if somevar.nil # not set do something else # is set do something else end
5条答案
按热度按时间nc1teljy1#
这里有一个很好的write up就可以了。
yrdbyhpb2#
defined?
是一个函数,如果项未定义,则返回nil。所以:
zc0qhyus3#
请记住,定义?如果变量已定义,则返回字符串,如果未定义,则返回nil,因此对其结果使用条件检查。我认为语法暗示它将返回布尔值。
pbpqsu0x4#
所有可能的情况
kqlmhetl5#
也可以这样测试。