ru:toolworks:docs:apparatus:iterating

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Последняя версияСледующая версия справа и слева
ru:toolworks:docs:apparatus:iterating [2021/09/01 23:02] – создано + переведено jisparru:toolworks:docs:apparatus:iterating [2022/01/05 15:46] – Немного поправил jispar
Строка 1: Строка 1:
 ====== Итерирование ====== ====== Итерирование ======
  
-Чтобы реализовать вашу реальную логику Механики, вам потребуется обработать все Сущности, удовлетворяющие [[ru:toolworks:docs:apparatus:filter|Фильтру]]. В целях эффективности и последовательности, это делается не напрямую, а через [[ru:toolworks:docs:apparatus:enchaining|Цепи]]. Итерируясь по цепям, вы итерируетесь по всем Сущностям и объектам типа Сущностный внутри них.+Чтобы реализовать вашу реальную логику Механики, вам потребуется обработать все Сущности, удовлетворяющие [[ru:toolworks:docs:apparatus:filter|Фильтру]]. В целях эффективности и последовательности, это делается не напрямую, а через [[ru:toolworks:docs:apparatus:enchaining|Цепи]]. Итерируясь по цепям, вы итерируетесь по всем Сущностям и Сущностным объектам внутри конкретной цепи.
  
-В итерации по цепям помогают Курсоры. Их семантика напоминает итераторы в стандартных контейнерах. Множественность курсоров поддерживается, но с оглядкой на мультипоточность, которая будет полноценно поддерживаться в недалёком будущем. А сейчас вам достаточно использовать только один простой Курсор.+В итерации по цепям помогают Курсоры. Их семантика напоминает итераторы в стандартных контейнерах.
  
 ===== Работа в C++ ===== ===== Работа в C++ =====
Строка 43: Строка 43:
  
 Пожалуйста, заметьте, что цепи утилизируются автоматически, когда все итерируемые курсоры закончили итерироваться по слотам. Пожалуйста, заметьте, что цепи утилизируются автоматически, когда все итерируемые курсоры закончили итерироваться по слотам.
-Чтобы предотвратить такое поведение особо, можете использовать вызовы ''[[appi>struct_t_chain.html#abdde97a57f62214dff4e643287eb2fae|Retain()]]''/''[[struct_t_chain.html#a665154da00eac2bcc7760851583db281|Release()]]'', чтобы самостоятельно контролировать время жизни объектов:+Чтобы предотвратить такое поведение особо, можете использовать вызовы ''[[appi>struct_t_chain.html#abdde97a57f62214dff4e643287eb2fae|Retain()]]''/''[[appi>struct_t_chain.html#a665154da00eac2bcc7760851583db281|Release()]]'', чтобы самостоятельно контролировать время жизни объектов:
  
 <code cpp> <code cpp>
Строка 60: Строка 60:
 ==== Встроенные курсоры ==== ==== Встроенные курсоры ====
  
-Аппарат предоставляет способ итерироваться по цепям встроенными (самостоятельно выделенными /* чё? */) Курсорами. В основном, эта технология используется внутри плагина для корректной работы Blueprint-ов, и вам её стоит избегать в своём C++ коде.+Аппарат предоставляет способ итерироваться по цепям встроенными Курсорами. В основном, эта технология используется внутри плагина для корректной работы Blueprint-ов, и вам её стоит избегать в своём C++ коде.
  
 Код будет довольно прост. Он состоит из while-цикла с одним условием: Код будет довольно прост. Он состоит из while-цикла с одним условием:
Строка 70: Строка 70:
 </code> </code>
  
-Внутри этого цикла вы можете реализовать нужную /*нужную? в источнике actual написано, так что я не знаю... "актуальная логика"? ну уж нет, пусть лучше нужная*/ логику, используя [[appi>struct_f_subject_handle.html|Сущности]] напрямую или служебные методы [[appi>struct_f_chain.html|Цепей]]:+Внутри этого цикла вы можете реализовать нужную логику, используя [[appi>struct_f_subject_handle.html|Сущности]] напрямую или служебные методы [[appi>struct_f_chain.html|Цепей]]:
 <code cpp> <code cpp>
 while (Chain.BeginOrAdvance()) while (Chain.BeginOrAdvance())
Строка 87: Строка 87:
 </code> </code>
  
-Когда указатель-Курсор Цепи пройдёт последний доступный объект Сущности (или типа Сущностный), Цепь будет уничтожена и ранее заблокированные Чанки и Белты вновь разблокируются, все ожидаемые структурные изменения будут незамедлительно выполнены (если они вообще были).+Когда указатель-Курсор Цепи пройдёт последнюю доступную Сущность (или Сущностный объект), Цепь будет уничтожена и ранее заблокированные чанки и ремни вновь разблокируются, все ожидаемые структурные изменения будут незамедлительно выполнены (если они вообще были).
  • ru/toolworks/docs/apparatus/iterating.txt
  • Последнее изменение: 2022/06/05 15:31
  • jispar