2016-02-27 119 views
0

我试图比较两个元组数组。我可以得到我想要比较单个元组实例的工作,但不是阵列版本。我在下面的代码中遇到什么问题?它能以更简洁的方式完成吗?比较命名元组的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") 
     } 

    } 

} 
+0

让我知道如果下面的答案适合你 –

回答

-4

显然,这是现在支持原生在Swift 2.2中。

+0

你测试过了吗? – chrysAllwood

+0

不支持.. –