Arrays 集合/数组上的多个约束

Arrays 集合/数组上的多个约束,arrays,swift,set,swift-protocols,Arrays,Swift,Set,Swift Protocols,简而言之:如何在Swift中对集合或数组设置协议约束 众所周知,您无法创建由协议类型组成的集,因为协议本身无法使其遵守哈希方法 然而,如果采用某一协议的所有类也继承自诸如NSObject之类的基类,则由于NSObject采用了先决条件可散列的协议,因此应该可以使一个集合由遵守所述协议的几个类组成 尽管如此,我甚至不知道如何使用基类和协议约束创建一个普通的数组 添加常规约束,例如 let数组:数组 只会导致预期'>'完成泛型参数列表 let set=set() 导致相同的错误以及预期表达式 let

简而言之:如何在Swift中对
集合
数组
设置协议约束

众所周知,您无法创建由协议类型组成的
,因为协议本身无法使其遵守
哈希
方法

然而,如果采用某一协议的所有类也继承自诸如
NSObject
之类的基类,则由于
NSObject
采用了先决条件
可散列的
协议,因此应该可以使一个
集合
由遵守所述协议的几个类组成

尽管如此,我甚至不知道如何使用基类和协议约束创建一个普通的
数组

添加常规约束,例如

let数组:数组
只会导致
预期'>'完成泛型参数列表

let set=set()
导致相同的错误以及
预期表达式

let set=set()

结果在
泛型类型“Set”中专门化了太多类型参数(得到2个,但预期为1)

目前无法直接表示从类继承并采用给定协议的类型,但是:)我接受这一回答。