如果你在Swift中有一个集合类型(比如Set<T>
)那么你可以从集合中删除一些内容,如...
var s = // some set
s.remove(someElement)
它将改变s并从中删除someElement
。
然而,这是一个变异功能。
是否存在可以返回新集的非变异函数?像...
let smallerSet = largerSet.removing(someElement)
我可以使用filter
,然后将其从O(1)
转换为O(n)
时间问题。
如果没有,我可以自己写一个。是否有像这样的非变异函数名称的约定?
答案 0 :(得分:3)
您可以使用Set的减法功能。为此,您需要将该元素放在另一个Set中。
let elementToBeDeleted = Set(arrayLiteral: 1)
var wholeSet = Set(arrayLiteral: 1,2,3)
wholeSet = wholeSet.subtracting(element)
print(wholeSet) //This would print [2,3].
希望这是你完成任务所需要的。