2016-02-27 56 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

不支持.. –