Je suis venu à ruby de PHP. Comment pourrais-je faire la prochaine chose à ruby?Réflexion en Ruby. Instancier un objet par un nom de classe donné
$className = 'ArrayObject';
$arrayObject = new $className();
Je suis venu à ruby de PHP. Comment pourrais-je faire la prochaine chose à ruby?Réflexion en Ruby. Instancier un objet par un nom de classe donné
$className = 'ArrayObject';
$arrayObject = new $className();
Vous pouvez le faire:
arrayObject = Object::const_get('Array').new
Vous pouvez également utiliser les éléments suivants si vous utilisez Ruby on Rails:
array_object = "Array".constantize.new
Ressemble à une solution de RoR. Je vous remercie! – vooD
Il est à noter que 'constantize' est une extension de base ajoutée à Ruby par le module ActiveSupport des Rails, c'est-à-dire que ce n'est pas du pur Ruby. –
Bon point John, j'ai mis à jour ma réponse. –
Si vous avez une classe, comme par exemple à cordes :
a = String
a.new("Geo")
donnerait une chaîne. La même chose s'applique à d'autres classes (le numéro de type & sera différent bien sûr).
Bien que cela ne réponde pas directement à la question, c'est un bon point que puisque les classes sont des objets, vous pouvez les stocker comme n'importe quel autre objet et cela pourrait être une meilleure approche dans de nombreux cas où vous seriez tenté d'utiliser une chaîne dans une autre langue. – Chuck
Cool! Merci beaucoup! – vooD