二元运算符“!=”不能应用于两个“[[String]]”操作数

Binary operator '!=' cannot be applied to two '[[String]]' operands

我有一个数组数组,需要过滤掉其中的一个特定数组。但是,当使用以下代码时,出现问题 "Binary operator '!=' cannot be applied to two '[[String]]' operands".

var arrayOfArrays = [[[String]]]()
var specificArray = [[String]]()

arrayOfArrays = arrayOfArrays.filter{[=10=] != specificArray}

我认为这曾经像半年前那样工作...

如评论中所述,Swift Arrays don't conform to Equatable so [[T]] != [[T]] does not work because it requires [T] to be Equatable. You could use elementsEqual(_:by:) 相反,它允许使用自定义相等函数比较元素,而不是 Equatable:

arrayOfArrays = arrayOfArrays.filter { ![=10=].elementsEqual(specificArray, by: ==) }

(注意:感谢 SE-0143 "Conditional conformances",一旦 Swift 4 发布,就不再需要此解决方法。)