Отражение в рубине. Создание объекта по заданному имени класса - PullRequest
20 голосов
/ 01 апреля 2010

Я пришел на ruby ​​из PHP. Как я могу сделать следующую вещь в рубине?

$className = 'ArrayObject';
$arrayObject = new $className();

Ответы [ 3 ]

29 голосов
/ 01 апреля 2010

Вы можете сделать это:

arrayObject = Object::const_get('Array').new
17 голосов
/ 01 апреля 2010

Вы также можете использовать следующее, если используете Ruby on Rails:

array_object = "Array".constantize.new
5 голосов
/ 01 апреля 2010

Если у вас есть класс, например, String:

a = String
a.new("Geo")

даст вам строку. То же самое относится и к другим классам (количество и тип параметров, конечно, будут отличаться).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...