Итерация пакетов: for-in по parameter pack 🤡

🔥 SE-0408 (Swift 6.0) даёт проитерировать parameter pack напрямую: for value in repeat each values. Именно это превращает пакеты из «выразимых» в пригодные к использованию. И да, два пакета в ногу тоже можно — for (l, r) in repeat (each lhs, each rhs). Это собственный мотивирующий пример пропозала, а не хак.

⚠️ Но для такого зипа нужно same-shape requirement, у которого нет синтаксиса вообще: оно только выводится из сигнатуры — из требований на пакеты, типов параметров, возвращаемого типа или where-клаузы. Два независимых пакета <each T, each U>, которых ничто в сигнатуре не связывает, упадут с «requirement shape(T) == shape(U) is unsatisfied». Про сам цикл: переменная — обычный неизменяемый let, break / continue / return работают, тело может бросать. Вычисление ленивое поэлементно: вышли на i-й итерации — последующие элементы просто не вычисляются.

#Swift #Swift6 #Generics #AdvancedSwift #iOSDevelopment

Итерация пакетов: for-in по parameter pack 🤡 | Сетка — социальная сеть от hh.ru