大佬教程收集整理的这篇文章主要介绍了如何测试命名元组的Swift数组的相等性,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有趣的是,可以为常规元组声明==运算符,并使用它来将元组与命名字段进行比较:
func ==<T1: Equatable,T2: Equatable>(lhs: (T1,T2),rhs: (T1,T2)) -> Bool { return lhs.0 == rhs.0 && lhs.1 == rhs.1 } var one = ("One",1) let two = ("Two",2) print(one == two) // "false" typealias NamedTuple2 = (name: String,value: int) var namedone: NamedTuple2 = (name: "One",value: 1) let namedtwo: NamedTuple2 = (name: "Two",value: 2) print(namedone == namedtwo) // "false" print(namedone == onE) // "true"
func ==<T0: Equatable,T1: Equatable>(lhs: [(T0,T1)],rhs: [(T0,T1)]) -> Bool { if lhs.count != rhs.count { return false } for (index,value) in lhs.enumerate() { if !(value == rhs[index]) { return false } } return true } let array12: [(String,int)] = [one,two] let array3: [Tuple2] = [("Three",3)] print(array12 == array3) // "false"
但是,此运算符不接受命名元组的数组:
let namedarray12: [NamedTuple2] = [namedone,namedtwo] let namedarray3: [NamedTuple2] = [array3[0]] print(namedarray12 == namedarray3) // error: binary operator '==' cAnnot be applied to two '[NamedTuple2]' operands
func ==<T1: Equatable,T2)) -> Bool { return lhs.0 == rhs.0 && lhs.1 == rhs.1 } let namedarray: [(name: String,value: int)] = [(name: "One",value: 1),(name: "Two",value: 2)] // namedarray == namedarray12 namedarray.elementsEqual(namedarray12,isEquivalent: ==) // true
以上是大佬教程为你收集整理的如何测试命名元组的Swift数组的相等性全部内容,希望文章能够帮你解决如何测试命名元组的Swift数组的相等性所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。