Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从数组中删除数组项_Arrays_Swift_Generics - Fatal编程技术网

Arrays 从数组中删除数组项

Arrays 从数组中删除数组项,arrays,swift,generics,Arrays,Swift,Generics,我正在尝试编写一个数组扩展,它允许我从一个数组中删除存在于另一个数组中的项。我需要将它用于一系列自定义类型,所以我试图构建一些通用的东西 这就是我到目前为止得到的返回错误“二进制运算符==不能应用于两个t操作数” 扩展数组{ 变异函数removeArrayItems(itemsToRemove:[T]){ 对于itemsToRemove中的项目{ var removed=removeObject(项目) } } 变异函数removeObject(对象:T)->Bool{ 用于枚举(self)中的

我正在尝试编写一个数组扩展,它允许我从一个数组中删除存在于另一个数组中的项。我需要将它用于一系列自定义类型,所以我试图构建一些通用的东西

这就是我到目前为止得到的返回错误“二进制运算符==不能应用于两个t操作数”

扩展数组{
变异函数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)完美!谢谢你,伙计