Swift:如何比较两个Dictionary <String,Any>结构体?
我正在使用在Swift中编写的使用typealias Context = [String: Any]
来存储行的附加信息的Static
框架。
现在,我需要比较两个Context
结构在extension Row
是否相等:
public func ==(lhs: Row, rhs: Row) -> Bool { // TODO: image, ... return lhs.text == rhs.text && lhs.detailText == rhs.detailText && lhs.accessory == rhs.accessory && lhs.context == rhs.context }
所以我实现了Row.Context
的==
运算符:
public func ==(lhs: Row.Context, rhs: Row.Context) -> Bool { return Array(lhs.keys) == Array(rhs.keys) // TODO: && Array(lhs.values) == Array(rhs.values) }
但现在,为了lhs.context == rhs.context
我需要扩展Row.Context
types以符合Equatable
:
extension Row.Context: Equatable {}
这正是我坚持以下错误的地方:
“约束扩展必须在非特定genericstypes”Dictionary“上声明,约束由”where“子句指定”
现在忽略对Row.Context的执行func ==
如何使Row.Context
符合Equatable
?