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