我有一个数组,需要过滤掉其中一个特定的数组。但是,在使用以下代码时,我得到了“二进制运算符”!=‘不能应用于两个'[String]’操作数“的问题。
var arrayOfArrays = [[[String]]]()
var specificArray = [[String]]()
arrayOfArrays = arrayOfArrays.filter{$0 != specificArray}我想这在半年前曾经起过作用.
发布于 2017-03-22 10:32:16
正如注释中提到的,Swift Arrays don't conform to Equatable所以[[T]] != [[T]]不能工作,因为它要求[T]是可等价物。您可以使用elementsEqual(_:by:),它允许使用自定义相等函数对元素进行比较,而不需要相等:
arrayOfArrays = arrayOfArrays.filter { !$0.elementsEqual(specificArray, by: ==) }(注意:多亏了",一旦Swift 4发布,就不再需要这种解决办法了。)
https://stackoverflow.com/questions/42948755
复制相似问题