方法defined?
给出作为参数给出的逐字表达式的结果。例如,
defined? foo
对foo
字面上是否是任何已定义的变量/方法都很敏感。将foo
定义为有效(现有)表达式的字符串是不同的:
foo = "Array"
与否:
foo = "NonExistingConstant"
是否可以使defined?
对扩展一级的给定参数敏感?也就是说,对于foo = "Array"
,它应该返回"constant"
而对于foo = "NonExistingConstant"
,它应该返回nil
。如果是这样,怎么样?
答案 0 :(得分:2)
因为你只需要检查常数:
['Array', 'NonExistentClass'].each do |name|
puts Object.const_defined?(name)
end
# >> true
# >> false