二元运算符“!=”不能应用于两个“[[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 发布,就不再需要此解决方法。)
我有一个数组数组,需要过滤掉其中的一个特定数组。但是,当使用以下代码时,出现问题 "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 发布,就不再需要此解决方法。)