У меня довольно много строк кода, которые создают объекты и используют различные параметры с одинаковыми именами объектов и конструкторами.Единственное, что меняется, - это фактическое имя создаваемой переменной объекта и имя самих передаваемых объектов. Вот пример кода, который соответствует моей текущей настройке:
BackyardObject backyardObject0 = new BackyardObject(cat0, dog0, goat0, piglet0);
BackyardObject backyardObject1 = new BackyardObject(cat1, dog1, goat1, piglet1);
BackyardObject backyardObject2 = new BackyardObject(cat2, dog2, goat2, piglet2);
BackyardObject backyardObject3 = new BackyardObject(cat3, dog3, goat3, piglet3);
BackyardObject backyardObject4 = new BackyardObject(cat4, dog4, goat4, piglet4);
// many many more BackyardObjects being instantiated
Какмы видим, что имена создаваемых объектов точно совпадают с именами объектов, передаваемых в конструктор.Можно ли создать цикл, который бы все это настраивал?
Редактировать
Думаю, мне не хватало деталей, которые были необходимы для получения правильного ответа на этот вопрос.Вопрос не в том, как «использовать» цикл, или как добавлять элементы в коллекцию, а в том, чтобы определить, возможно ли динамическое создание «имени переменной» внутри цикла при обращении к нему.другое имя переменной динамически внутри цикла предоставило информацию, приведенную выше (только что составленный код на месте).
// psuedo code for something I'm asking is possible
for( i = 0; i < 10; i++)
{
// create BackyardObject with generic name, while appending "i" to
// variable name, and accessing other object variables
BackyardObject backyardObject'i'
= new backyardObject(cat'i', dog'i', goat'i', piglet'i');
}
Хотя я понимаю, что могу создать дополнительные массивы и списки для хранения объектов, а затем использовать ихЯ просто смотрел, можно ли динамически получать имена переменных.Я не был уверен, возможно ли это полностью, поэтому я задал вопрос.Я знаю, что это странный вопрос, но мне стало любопытно, когда я увидел код Objective-C:
// Getting an arrayName dynamically based on loop index
for (int i = 0; i < 10; i++)
{
NSString *arrayName = [[NSString alloc] initWithFormat:@"column%d",
i];
NSArray *array = [self valueForKey:arrayName];
}