Здравствуйте, подскажите, в каких случаях foreach лучше, а в каких лучше использовать for
Здравствуйте, подскажите, в каких случаях foreach лучше, а в каких лучше использовать for
Foreach - это обертка над for для использования итераторов. Первый лучше использовать тогда, когда нужно использовать значения из диапазона [0,size) в упорядоченном виде. For для всех других случаев.
Пример:
У нас на сервере есть только 3 игрока с идентификаторами 3, 10, 204
foreach (new p : Player) { }
Выведет: 3 10 204
Если бы мы использовали for, то нам пришлось бы всегда проверять занятость слота.
for (new i = 0; i < MAX_PLAYERS; ++i) { continue; }
Выведет тоже самое.
Различие лишь в том, что значения в первом примере записываются в итератор и не проверяются. Итератор - Player. На данном форуме есть статья про итераторы в Pawn (http://pro-pawn.ru/showthread.php?15081).
Последний раз редактировалось x86; 02.02.2019 в 18:15.
DmitriyVasilev (09.02.2019)
а можете пример показать где лучше for юзать
Везде, где нельзя применять foreach.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Можешь использовать foreach везде, только нужно создать свой итератор. Чекай тут
Из гайда по Русски:
PHP код:
new Iterator:OwnedVehicles[MAX_PLAYERS]<MAX_VEHICLES>; //Создаешь массив
PHP код:
Iter_Init(OwnedVehicles); //Даешь понять, что это итератор в OnGameModeInit например
PHP код:
Iter_Add(OwnedVehicles[5], 5); //Добавляешь игроку с id 5 автомобиль с id 5
По поводу "что лучше" - ничего.PHP код:
foreach (new i : OwnedVehicles[5]) //Парсишь id машин, которые находятся у игрока 5
Josan_Solomon (13.08.2019)
Далеко не везде это будет уместно. Подробнее описал тут всю "проблему"
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)