Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift泛型类型可按排序数组计算_Swift_Generics_Equality - Fatal编程技术网

Swift泛型类型可按排序数组计算

Swift泛型类型可按排序数组计算,swift,generics,equality,Swift,Generics,Equality,我试图将我的genericCustomSet与equalable一致,但在尝试对equalable函数中的列表数组进行排序时,出现以下错误: 对成员“Bool”的引用不明确{ 返回lhs.list.count==rhs.list.count&&lhs.list.sorted(by:您需要将您的泛型类型参数限制为可比才能使用您需要将您的泛型类型参数限制为可比才能使用可以这样想:equalable允许您判断两个对象是否相等。compariable允许您比较两个对象,以查看哪个是相同的e更大。若要排序

我试图将我的generic
CustomSet
与equalable一致,但在尝试对equalable函数中的列表数组进行排序时,出现以下错误:

对成员“Bool”的引用不明确{
返回lhs.list.count==rhs.list.count&&lhs.list.sorted(by:您需要将您的泛型类型参数限制为
可比
才能使用
您需要将您的泛型类型参数限制为
可比
才能使用
可以这样想:equalable允许您判断两个对象是否相等。compariable允许您比较两个对象,以查看哪个是相同的e更大。若要排序,您需要能够比较对象。请这样考虑:Equalable可以告诉您两个对象是否相等。Comparable可以比较两个对象,以查看哪个对象更大。若要排序,您需要能够比较对象。
struct CustomSet<T : Equatable> {
    var list: [T]
    init(_ list: [T]){
        self.list = list
    }
}

extension CustomSet : Equatable {
    static func == (lhs: CustomSet, rhs: CustomSet) -> Bool {
        return lhs.list.count == rhs.list.count && lhs.list.sorted(by: <) == rhs.list.sorted(by: <)
    }
}
struct CustomSet<T : Comparable> {
    var list: [T]
    init(_ list: [T]){
        self.list = list
    }
}