func removal(Element) - > [T] {}收集在swift中

时间:2017-04-06 10:23:42

标签: swift

如果你在Swift中有一个集合类型(比如Set<T>)那么你可以从集合中删除一些内容,如...

var s = // some set
s.remove(someElement)

它将改变s并从中删除someElement

然而,这是一个变异功能。

是否存在可以返回新集的非变异函数?像...

let smallerSet = largerSet.removing(someElement)

我可以使用filter,然后将其从O(1)转换为O(n)时间问题。

如果没有,我可以自己写一个。是否有像这样的非变异函数名称的约定?

1 个答案:

答案 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].

希望这是你完成任务所需要的。