我有一个字典([[Double:Double]]
)数组,我想将其转换成Set
个字典。我的目标是使用.symmetricDifference
查找两个数组之间的差异(两者均为[[Double:Double]]
类型)。我该怎么办?
我在hackingwithswift.com上发现了this,并尝试使用它,但出现此错误:
类型'[[[Double:Double]]''不符合协议'Hashable'
我也尝试过此代码...
let array1:[[Double:Double]] = [[4.5:3.678], [6.7:9.2867], [7.3: 8.7564]]
let array2:[[Double:Double]] = [[4.5:3.678], [6.7:9.2867]]
let array3 = Set<[[Double:Double]]>(array1).symmetricDifference(Set(array2)) //On this line I get the error above.
答案 0 :(得分:1)
您不想要一组[[Double:Double]]
。您需要一个[Double:Double]
的集合,因为它们是数组中的对象,而您希望它们成为集合中的对象。
因此,只要您简单地说一遍,就会发生正确的事情
let array1:[[Double:Double]] = [[4.5:3.678], [6.7:9.2867], [7.3: 8.7564]]
let set1 = Set(array1)
以此类推。
此可能要求您更新到较新版本的Swift。它可以在Swift 4.2中使用。