Arrays 二进制运算符“!=”无法应用于两个“[[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

我有一个数组,需要过滤掉其中的一个特定数组。但是,当使用下面的代码时,我得到了问题二进制运算符“!=”无法应用于两个“[[String]]”操作数

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运算符只对数组有效。请看这个关于比较的答案这正是我要找的。我看到了我对另一篇文章感到困惑的部分,谢谢你的解释!