Result builders: какие методы реально нужны 😎

🔥 SE-0289 (Swift 5.4, переименован из function builders) превращает последовательность выражений в одно значение. Это та самая механика, на которой стоит DSL SwiftUI. Обязателен ровно один метод — buildBlock. Всё остальное опционально, и каждый включает конкретную возможность: buildOptional — голый if, buildEither(first:) / (second:) — if/else, buildArray — циклы for, плюс buildExpression, buildLimitedAvailability и buildFinalResult.

⚠️ Пара, которую регулярно пишут неправильно: это buildPartialBlock(first:) плюс buildPartialBlock(accumulated:next:) (SE-0348, Swift 5.7), а не buildPartialBlock(first:accumulated:). Если объявить оба, они заменяют собой buildBlock. Ещё две детали. break и continue внутри тела, преобразованного билдером, некорректны — это не поддерживаемый control flow. И по стилю: RequestPart... лучше сразу писать как any RequestPart... — обязательным это станет только в Swift 7 под ExistentialAny, но так честнее.

#Swift #SwiftUI #APIDesign #AdvancedSwift #iOSDevelopment

Result builders: какие методы реально нужны 😎 | Сетка — социальная сеть от hh.ru