在Swift 4.2中玩Collection Extension,我尝试执行以下操作:
如果某个集合包含重复项,那么我想获取该集合中每个元素的编号。
请参阅下面的代码。
有两个错误(请参见屏幕截图)
这是我的代码:
extension Collection where Iterator.Element: Comparable {
func occurrencesOfElements() -> [Int: Self] {
var counts: [Int: Self] = [:]
let sortedArr = self.sorted(by: { $0 > $1 })
let uniqueArr = Set(sortedArr) // err-1 !!!!!!!!
if uniqueArr.count < sortedArr.count {
uniqueArr.forEach { counts[$0, default: 0] += 1 } // err-2 !!!!!!!
}
return counts
}
}
// Testing with...
[6, 7, 4, 5, 6, 0, 6].occurrencesOfElements()
// Expected result (see number 6 occurs twice) :
// [0 : 1, 4: 1, 5: 1, 6 : 2, 7 : 1]