下面的例子將失敗如何在Ruby中從字符串「A :: B :: C」獲取類對象?
class A
class B
end
end
p Object.const_get 'A' # => A
p Object.const_get 'A::B' # => NameError: wrong constant name A::B
UPDATE
關於剛纔問的話題問題:
最後一個gives a nice solution可以演變成
class String
def to_class
self.split('::').inject(Object) do |mod, class_name|
mod.const_get(class_name)
end
end
end
class A
class B
end
end
p "A::B".to_class # => A::B
'A類開始MY_CONST =「SomeOtherClass」.to_class end'?例如,如果在'initialize'之外調用,我會得到未初始化的常量。 'class_eval',我可以嘗試什麼?謝謝! – Dr1Ku 2011-06-20 22:37:20