Swift数组扩展无法追加公平项

时间:2015-08-09 18:01:52

标签: arrays swift extension-methods

尝试进行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类型

enter image description here

吹我的小脑袋

0 个答案:

没有答案