Как использовать строки или символы для создания новых переменных || объекты? Скажем, я хочу 5 уникальных объектов уже сделанного класса предметов;Ruby: использование строк для динамического создания объектов
for x in 1..5
item_x = item.new() #where x is obviously the number value of the iterator
end
Я попытался с помощью Eval() таким образом:
for x in 1..5
eval("item_" << x << "= item.new()")
end
Надеясь, что ввод строки я хочу выполненный в Eval бы он выполнен, как если бы я положил его в код.
Я искал создание динамического объекта и не нашел никого с этой проблемой, извините, если это мирский материал. Я нашел ссылки на людей, использующих .const_get и Openstruct, но они, похоже, не исправляют мою проблему так, как я могу понять.
Это метод PHP/Perl, который не поддерживается Ruby и обычно обескуражен, потому что его очень сложно поддерживать и отлаживать. «Эй, откуда появился« item_x »!? Это нигде в исходном коде !?" Я бы рекомендовал переосмыслить, как вы можете хранить данные в контейнере, например массив или хэш, и получать доступ к данным, как вам нужно. Вы можете объяснить цель, и мы можем помочь вам выбрать лучшие структуры, а не просить о помощи в том, что не является хорошим направлением. –