我有一个数组数组,需要过滤掉其中的一个特定数组。但是,当使用以下代码时,我会遇到问题"二元运算符'!='不能应用于两个[[String]]'操作数"
var arrayOfArrays = [[[String]]]()
var specificArray = [[String]]()
arrayOfArrays = arrayOfArrays.filter{$0 != specificArray}
我认为这曾经像半年前一样工作......
答案 0 :(得分:1)
正如评论中所述,Swift Arrays don't conform to Equatable因此[[T]] != [[T]]
不起作用,因为它需要[T]
为Equatable。您可以使用elementsEqual(_:by:)
代替,它允许使用自定义相等函数比较元素,而不是Equatable:
arrayOfArrays = arrayOfArrays.filter { !$0.elementsEqual(specificArray, by: ==) }
(注意:感谢SE-0143 "Conditional conformances",一旦Swift 4发布,就不再需要这种解决方法。)