2010-03-31 6 views

risposta

27

Si può fare questo:

arrayObject = Object::const_get('Array').new 
+0

Fantastico! Molte grazie! – vooD

15

È inoltre possibile utilizzare il seguente se si utilizza Ruby on Rails:

array_object = "Array".constantize.new 
+0

Sembra una soluzione da RoR. Grazie! – vooD

+3

Vale la pena sottolineare che 'constantize' è un'estensione core aggiunta a Ruby dal modulo ActiveSupport di Rails, vale a dire che non è puro Ruby. –

+0

Buon punto John, ho aggiornato la mia risposta. –

4

Se si dispone di una classe, come ad esempio String :

a = String 
a.new("Geo") 

fornirebbe una stringa. La stessa cosa vale per altre classi (il tipo di parametri & differirà ovviamente).

+1

Sebbene questo non risponda direttamente alla domanda, è un buon punto dal momento che le classi sono oggetti, è possibile memorizzarle come qualsiasi altro oggetto e questo potrebbe essere un approccio migliore in molti casi in cui si sarebbe tentati di usare una stringa in un'altra lingua – Chuck

Problemi correlati