swift - 对元素具有可识别约束的快速通用序列
问题描述
似乎它应该真的很容易 - 但我找不到任何方法将项目序列上的泛型限制为特定项目类型 - 在这种情况下 - 我想说我可以使用任何序列,只要组成序列的项目都是可识别的
// none of these compile
//
struct GridView<List> : View where List: Sequence, List.Type : Identifiable
struct GridView<List, Item> : View where List: Sequence, Item: Identifiable, List.Type == Item
struct GridView<List, Item> : View where List: Sequence, Item: Identifiable, List.Type : Item
有什么办法吗?目前,我只需拥有一个通用类型“Item” - 并采用 [Item] - 但理想情况下我想使用任何序列 - 不要强迫它成为一个列表。
解决方案
struct GridView<List: Sequence>: View where List.Element: Identifiable {
// ...
}
Sequence
定义了一个名为 的关联类型Element
,您可以对其进行约束以使其符合Identifiable
推荐阅读
- python - 熊猫中字符串到日期时间的不正确解析
- python - 将变量从 Python 发送到 PHP
- java - 在 Java 中使用 WCF 服务
- amazon-web-services - 即使 EC2 实例正在运行,ECS 中也会列出空的 EC2 实例
- c# - 如何在 C# MVC 中检查方法是否具有 AllowAnonymous 属性
- excel - 计数和复制动态范围 Vba
- excel - 根据单元格值隐藏多行的代码
- ansible - 使用 kolla-ansible 安装 ceph 进行多合一设置
- haskell - 如何在 Haskell 的函数中使用 do 块?
- python - 如果最后一个 impala 语句是 select 语句,如何检查 pyodbc 包?