Arrays 二进制运算符“!=”无法应用于两个“[[String]]”操作数
我有一个数组,需要过滤掉其中的一个特定数组。但是,当使用下面的代码时,我得到了问题二进制运算符“!=”无法应用于两个“[[String]]”操作数Arrays 二进制运算符“!=”无法应用于两个“[[String]]”操作数,arrays,swift,binary-operators,Arrays,Swift,Binary Operators,我有一个数组,需要过滤掉其中的一个特定数组。但是,当使用下面的代码时,我得到了问题二进制运算符“!=”无法应用于两个“[[String]]”操作数 var arrayOfArrays = [[[String]]]() var specificArray = [[String]]() arrayOfArrays = arrayOfArrays.filter{$0 != specificArray} 我认为这过去像半年前一样有效…如评论中所述,所以[[T]]!=[[T]]不起作用,因为它要求[T
var arrayOfArrays = [[[String]]]()
var specificArray = [[String]]()
arrayOfArrays = arrayOfArrays.filter{$0 != specificArray}
我认为这过去像半年前一样有效…如评论中所述,所以[[T]]!=[[T]]不起作用,因为它要求[T]相等。您可以改为使用,它允许使用自定义相等函数比较元素,而不需要相等:
arrayOfArrays = arrayOfArrays.filter { !$0.elementsEqual(specificArray, by: ==) }
注:感谢,Swift 4发布后,不再需要此解决方法。specificArray的数据类型是什么?specificArray是字符串数组的数组,而arrayOfArrays更像数组数组的数组。specificArray是数组,arrayOfArrays是Arrayboolean运算符只对数组有效。请看这个关于比较的答案这正是我要找的。我看到了我对另一篇文章感到困惑的部分,谢谢你的解释!