Arrays 从数组中删除数组项
我正在尝试编写一个数组扩展,它允许我从一个数组中删除存在于另一个数组中的项。我需要将它用于一系列自定义类型,所以我试图构建一些通用的东西 这就是我到目前为止得到的返回错误“二进制运算符==不能应用于两个t操作数”Arrays 从数组中删除数组项,arrays,swift,generics,Arrays,Swift,Generics,我正在尝试编写一个数组扩展,它允许我从一个数组中删除存在于另一个数组中的项。我需要将它用于一系列自定义类型,所以我试图构建一些通用的东西 这就是我到目前为止得到的返回错误“二进制运算符==不能应用于两个t操作数” 扩展数组{ 变异函数removeArrayItems(itemsToRemove:[T]){ 对于itemsToRemove中的项目{ var removed=removeObject(项目) } } 变异函数removeObject(对象:T)->Bool{ 用于枚举(self)中的
扩展数组{
变异函数removeArrayItems(itemsToRemove:[T]){
对于itemsToRemove中的项目{
var removed=removeObject(项目)
}
}
变异函数removeObject(对象:T)->Bool{
用于枚举(self)中的(idx,objectToCompare){
如果let to=objectToCompare as?T{
如果对象==to{
自删除索引(idx)
返回真值
}
}
}
返回错误
}
}
相等运算符=
,仅适用于可相等的对象。您需要将您的类型T
限定为T:equalable
。因此:
mutating func removeObject<T:Equatable>(object: T) -> Bool {
// ...
}
相等运算符==
,仅适用于可相等的对象。您需要将您的类型T
限定为T:equalable
。因此:
mutating func removeObject<T:Equatable>(object: T) -> Bool {
// ...
}
相等运算符==
,仅适用于可相等的对象。您需要将您的类型T
限定为T:equalable
。因此:
mutating func removeObject<T:Equatable>(object: T) -> Bool {
// ...
}
相等运算符==
,仅适用于可相等的对象。您需要将您的类型T
限定为T:equalable
。因此:
mutating func removeObject<T:Equatable>(object: T) -> Bool {
// ...
}
伟大的非常感谢。我现在明白了。然而,我仍然存在的问题是,我似乎不能用自定义类型的数组来调用它。但是,它可以在标准类型上找到。e、 g.var arrayTimings:[Timing]=[Timing]()//填充数组scheduledTimings.removeArrayItems(arrayTimings)完美!非常感谢,太好了!非常感谢。我现在明白了。然而,我仍然存在的问题是,我似乎不能用自定义类型的数组来调用它。但是,它可以在标准类型上找到。e、 g.var arrayTimings:[Timing]=[Timing]()//填充数组scheduledTimings.removeArrayItems(arrayTimings)完美!非常感谢,太好了!非常感谢。我现在明白了。然而,我仍然存在的问题是,我似乎不能用自定义类型的数组来调用它。但是,它可以在标准类型上找到。e、 g.var arrayTimings:[Timing]=[Timing]()//填充数组scheduledTimings.removeArrayItems(arrayTimings)完美!非常感谢,太好了!非常感谢。我现在明白了。然而,我仍然存在的问题是,我似乎不能用自定义类型的数组来调用它。但是,它可以在标准类型上找到。e、 g.var arrayTimings:[Timing]=[Timing]()//填充数组scheduledTimings.removeArrayItems(arrayTimings)完美!谢谢你,伙计