0

该方法defined?给出作为参数给出的逐字表达式的结果。例如,结果

defined? foo

对是否foo是任何定义的变量/方法很敏感。foo是否定义为有效(现有)表达式的字符串没有区别:

foo = "Array"

或不:

foo = "NonExistingConstant"

是否可以defined?将给定的论点扩大一级?也就是说,对于foo = "Array",它应该返回"constant",对于foo = "NonExistingConstant",它应该返回nil。如果是这样,怎么做?

4

1 回答 1

2

由于您只需要检查常量:

['Array', 'NonExistentClass'].each do |name|
  puts Object.const_defined?(name)
end
# >> true
# >> false
于 2013-06-21T05:34:41.153 回答