元素上具有可识别约束的swift泛型序列

元素上具有可识别约束的swift泛型序列,swift,Swift,看起来应该很容易,但我找不到任何方法将项目序列上的泛型约束为特定的项目类型。在这种情况下,我想说我可以处理任何序列,只要组成序列的项目都是可识别的 //这些都不能编译 // 结构GridView:视图,其中列表:序列,列表。类型:可识别 struct GridView:视图,其中List:Sequence,Item:Identifiable,List.Type==Item struct GridView:视图,其中列表:序列,项:可识别,列表。类型:项 有什么办法吗?目前,我只需要一个泛型类

看起来应该很容易,但我找不到任何方法将项目序列上的泛型约束为特定的项目类型。在这种情况下,我想说我可以处理任何序列,只要组成序列的项目都是可识别的


//这些都不能编译
//
结构GridView:视图,其中列表:序列,列表。类型:可识别
struct GridView:视图,其中List:Sequence,Item:Identifiable,List.Type==Item
struct GridView:视图,其中列表:序列,项:可识别,列表。类型:项
有什么办法吗?目前,我只需要一个泛型类型“Item”-并使用[Item]-就可以了,但理想情况下,我希望使用任何序列-而不是强制它成为一个列表。

struct GridView:View where list.Element:Identifiable{
struct GridView<List: Sequence>: View where List.Element: Identifiable {
  // ...
}
// ... }
Sequence
定义了一个名为
Element
的关联类型,您可以将其约束为符合
可识别的

struct GridView:View where List.元素:可识别的{
// ...
}

序列
定义了一个名为
元素
的关联类型,您可以将其约束为符合
可识别
第一个类型几乎是正确的。要引用
序列的元素类型
,请使用,而不是
.type
<代码>类型
指类型的类型

struct GridView<ListType>: View where ListType: Sequence, ListType.Element: Identifiable
struct GridView:视图,其中ListType:序列,ListType.元素:可识别

第一个几乎是正确的。要引用
序列的元素类型
,请使用,而不是
.type
<代码>类型
指类型的类型

struct GridView<ListType>: View where ListType: Sequence, ListType.Element: Identifiable
struct GridView:视图,其中ListType:序列,ListType.元素:可识别