在Ruby和JavaScript中测试未定义的变量?

Mac*_*iek 23 javascript ruby undefined

在JavaScript中,有一种有用的方法可以测试从未在任何给定点定义过的变量.例如,如果尚未定义变量bob,则以下代码片段将返回true:

typeof(bob)=='undefined'
Run Code Online (Sandbox Code Playgroud)

如何在Ruby中完成相同的测试?

编辑:我正在寻找一个同样紧凑的测试.我用异常等方法得出了一些尴尬的近似值,但那些不是很漂亮!

jsh*_*hen 44

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"
Run Code Online (Sandbox Code Playgroud)

这里是一个很好的写起来就可以了.

  • 零是假的.你可以做'如果定义?(等等)' (3认同)
  • 我意识到这似乎很奇怪因为'?' 在方法的最后.我假设一个布尔返回但是得到nil或一个字符串 (2认同)

Tim*_*van 9

defined? 如果项目未定义,则返回nil的函数.

defined? somevar
=> nil
somevar = 12
defined? somevar
=> "local-variable"
Run Code Online (Sandbox Code Playgroud)

所以:

if defined?(somevar)
  do_something
end
Run Code Online (Sandbox Code Playgroud)