Как инфраструктура SwiftUI вообще определяет наличие операторов потока и выдает ошибки?
Это не так. Swift language (то есть компилятор ) обнаруживает это. Это не «выдает ошибку», это просто говорит, что ваш код синтаксически недопустим, поэтому он не может скомпилировать его.
Чтобы понять почему, спросите себя, каков синтаксис
VStack {
// ...
}
Это инициализатор структуры VStack, опосредованный конструктором функций , который в основном меняет способ работы синтаксиса Swift, превращая его в специфичный для домена язык c. Вы вызываете этот метод:
https://developer.apple.com/documentation/swiftui/vstack/3278367-init
В фигурных скобках последний параметр:
@ViewBuilder content: () -> Content
Так что это Тело функции для функции, которая должна возвращать Content, который является видом View. Из-за того, как работает построитель функций, единственное, что вам разрешено делать, это возвращать View - или, благодаря построителю функций, вы можете сказать последовательность объектов View, и они объединяются для вас и возвращаются. И это all , которое вам разрешено делать в этом контексте.
В вашем случае использования именно поэтому предоставляется структура ForEach : так, чтобы у вас был способ для создания ваших объектов View в al oop в домене разработчика функций.