bigcake 2018-04-16 18:21
菜鸟提问
回复:2 查看:4754
能否定义一个方法,比较两个数组的值。
若数组内值的类型相同,返回一个包含两个数组相同的值的数组。
若数组内值的类型不相同,则抛出一个错误。
ps:在阅读泛型篇章时想到的问题,但写不出实现这个方法的代码,在此请教!
若数组内值的类型相同,返回一个包含两个数组相同的值的数组。
若数组内值的类型不相同,则抛出一个错误。
ps:在阅读泛型篇章时想到的问题,但写不出实现这个方法的代码,在此请教!
Swift 2018-04-18 10:23
这里有个类似的代码
func anyCommonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> Bool where T.Iterator.Element: Equatable, T.Iterator.Element == U.Iterator.Element { for lhsItem in lhs { for rhsItem in rhs { if lhsItem == rhsItem { return true } } } return false } anyCommonElements([1, 2, 3], [3])在 这个帖子里摘出来的
大头大哥orz 2018-04-18 10:55
func anyCommonElements<T: Sequence, U: Sequence>(_ lhs: T, _ rhs: U) -> T where T.Iterator.Element: Equatable, T.Iterator.Element == U.Iterator.Element { var temp = T() for lhsItem in lhs { for rhsItem in rhs { if lhsItem == rhsItem { temp.appand(lhsItem) } } } return temp } anyCommonElements([1, 2, 3], [3])