Благодаря направлению, указанному @Asperi в комментариях, я думаю, что смогу ответить на свой вопрос.
Имя этой языковой конструкции - generics .
В первом примере ниже Page
определяет generi c type , имя-заполнитель для типа. Параметр page
может хранить значение любого допустимого типа Swift. Page
может быть любым именем, которое имеет смысл для читаемости вашего кода.
struct PageView<Page> {
var page: Page
}
Во втором примере ниже View
- это ограничение типа и используется для ограничения возможные типы, назначаемые параметру page
. В этом примере тип generi c Page должен соответствовать протоколу SwiftUI View . Все, что назначено для page
, должно реализовывать все, что требуется протоколом просмотра.
struct PageView<Page: View> {
var page: Page
}