尝试进行swift数组扩展,只有当数组尚未包含对象时才将对象添加到数组中,即防止重复
这是一个功能
func contains<T : Equatable>(obj: T) -> Bool {
let filtered = self.filter {$0 as? T == obj}
return filtered.count > 0
}
mutating func appendOnce<T : Equatable>(newElement: T) -> Bool {
// append object only if there is no same object in array
// return true if added
var result = false
if self.contains(newElement) {
self.append(newElement)
result = true
}
return result
}
但是如果我设置appendOnce然后编译器说:
无法使用类型为'(T)'
的参数列表调用'append'
为什么呢? append方法采用T类型的newObject,newObject是T类型
吹我的小脑袋