Ios 比较Swift中字典的平等性

Ios 比较Swift中字典的平等性,ios,swift,dictionary,Ios,Swift,Dictionary,嗨,我想比较两种类型的字典[AnyHashable:Any],我已经给出了一些答案,但我不知道如何达到同样的效果 例如,此链接上的已接受答案 我在哪里写给定的方法 public func ==<K, V: Hashable>(lhs: [K: V], rhs: [K: V] ) -> Bool { return (lhs as NSDictionary).isEqual(to: rhs) } 我试着在字典扩展中声明它,但它没有帮助 请不要将此标记为重复。我已经提供了

嗨,我想比较两种类型的字典[AnyHashable:Any],我已经给出了一些答案,但我不知道如何达到同样的效果

例如,此链接上的已接受答案

我在哪里写给定的方法

public func ==<K, V: Hashable>(lhs: [K: V], rhs: [K: V] ) -> Bool {
    return (lhs as NSDictionary).isEqual(to: rhs)
}
我试着在字典扩展中声明它,但它没有帮助

请不要将此标记为重复。我已经提供了一个指向我试图遵循的答案的链接,但它没有帮助。

您无法比较任何对象,因为它不符合协议。您只能比较像:[AnyHashable:Equatable]这样的字典。

您不能比较任何对象,因为它不符合协议。根据给定的代码,您只能比较像:[AnyHashable:Equatable]

这样的字典

public func ==<K, V: Hashable>(lhs: [K: V], rhs: [K: V] ) -> Bool {
    return (lhs as NSDictionary).isEqual(to: rhs)
}
输出:根据给定代码等于

public func ==<K, V: Hashable>(lhs: [K: V], rhs: [K: V] ) -> Bool {
    return (lhs as NSDictionary).isEqual(to: rhs)
}

输出:相等

你说不帮忙是什么意思?解释问题当我在Dictionary的扩展中声明函数时,在方法声明中添加static会给我一个错误,即使在我声明它为静态并在两个字典上使用==运算符之后,它也不起作用。您不必将此函数放入扩展中。因此,我在何处声明此函数如果您对另一个问题的答案有疑问,您应该在那里留下注释。你不应该仅仅因为不理解答案就对同样的、已经回答过的问题提出另一个问题。这就是评论的目的。你不帮忙是什么意思?解释问题当我在Dictionary的扩展中声明函数时,在方法声明中添加static会给我一个错误,即使在我声明它为静态并在两个字典上使用==运算符之后,它也不起作用。您不必将此函数放入扩展中。因此,我在何处声明此函数如果您对另一个问题的答案有疑问,您应该在那里留下注释。你不应该仅仅因为不理解答案就对同样的、已经回答过的问题提出另一个问题。这就是注释的目的。我认为字典值只需要是anyequalable,不一定是anyhashable。我认为Swift中没有anyequalable这样的东西。只有相等的存在。哦,有趣!我认为字典值只需要是anyequalable,不一定是anyhashable。我认为Swift中没有anyequalable这样的东西。只有相等的存在。哦,有趣!