Arrays 如何制作数组<;任何>;平等的?

Arrays 如何制作数组<;任何>;平等的?,arrays,swift,generics,swift4.1,Arrays,Swift,Generics,Swift4.1,我有以下可解码类: class Sample: Decodable { var something: Array<Any>? } extension Sample: Equatable { static func == (lhs: Sample, rhs: Sample) -> Bool { return rhs.something ?? [] == lhs.something ?? [] } } 类示例:可解码{ 什么:数组? }

我有以下可解码类:

class Sample: Decodable {
    var something: Array<Any>?
}

extension Sample: Equatable {
    static func == (lhs: Sample, rhs: Sample) -> Bool {
        return rhs.something ?? [] == lhs.something ?? []
    }
}
类示例:可解码{
什么:数组?
}
扩展示例:equalable{
静态函数==(左:示例,右:示例)->Bool{
返回rhs.something???[]==lhs.something???[]
}
}
给我错误类型
Any
不符合协议

对于everyone信息,
数组
中的对象类型只有在我收到响应后才会在运行时确定


需要帮助。

您不能将
数组
设置为
可均衡
可解码
,因为两个
协议
都需要
数组的
元素
类型为
可均衡
可解码
任何
都不满足此要求

您可以做的是,创建自己的自定义
,以满足上述要求,如下所示:

class MyAny: Equatable, Decodable {

    static func == (lhs: MyAny, rhs: MyAny) -> Bool {
        return lhs.id == rhs.id
    }

    var id: Int
}

class Sample: Decodable {

    var something: Array<MyAny>?
}
classmyany:可等式、可解码{
静态函数==(lhs:MyAny,rhs:MyAny)->Bool{
返回lhs.id==rhs.id
}
变量id:Int
}
类示例:可解码{
什么:数组?
}

这毫无意义。比较的整个概念只存在于已知的量。。。。而且你不能解码任何代码。谢谢Kamran。我可以试试这个方法。