def self.get(server)
return unless server
server = server.to_s
if klass = @handlers[server]
obj = Object
klass.split("::").each { |x| obj = obj.const_get(x) }
obj
else
try_require('rack/handler', server)
const_get(server)
end
end
在上面的code,const_get被用于检索某种在这条线命名常量:为什么klass和const_get一起使用?
klass.split("::").each { |x| obj = obj.const_get(x) }
如果是这样,为什么“klass
”特别是在这里被使用?我读过klass
用于避免命名空间与“class
”关键字冲突。但在这个例子中,我没有看到可能的冲突可能来自哪里。
我读过类似的代码。它被命名为 'class_name.split(“::”)。each {| x | klass = klass.const_get(x)}' – lulalala 2012-03-06 09:28:40