我试图比较两个元组数组。我可以得到我想要比较单个元组实例的工作,但不是阵列版本。我在下面的代码中遇到什么问题?它能以更简洁的方式完成吗?比较命名元组的Swift数组
目前我得到的“二元运算符=不能应用于两个!‘[(排序:双,名称:字符串,circleImageURLString:字符串)’操作数”
func != <T0:Equatable, T1:Equatable, T2:Equatable> (tuple1:(sort:T0, name:T1, circleImageURLString:T2), tuple2:(sort:T0, name:T1, circleImageURLString:T2)) -> Bool {
return tuple1.0 != tuple2.0 || tuple1.1 != tuple2.1 || tuple1.2 != tuple2.2
}
func != <T0:Equatable, T1:Equatable, T2:Equatable> (array1:[(sort:T0, name:T1, circleImageURLString:T2)], array2:[(sort:T0, name:T1, circleImageURLString:T2)]) -> Bool {
if array1.count != array2.count {
return true
}
for (index, value) in array1.enumerate() {
if value != array2[index] {
return true
}
}
return false
}
class myGreatTest {
func test() {
let array1: [(sort: Double, name: String, circleImageURLString: String?)] = [(sort:12.34, name:"Test 1", circleImageURLString:"www.test.com/1.png")]
let array2: [(sort: Double, name: String, circleImageURLString: String?)] = [(sort:56.78, name:"Test 2", circleImageURLString:nil)]
if array1 != array2 {
print("Not equal")
}
}
}
让我知道如果下面的答案适合你 –