是否有 Swift 单行代码从数组中删除元素(如果存在)并在不存在时附加它?

Is there a Swift one-liner to remove an element from an array if present and append it if not?

这是我经常遇到的结构。有什么好的方法可以在 Swift 中单行显示吗?

我可以为它写一个关于 Sequence 的扩展,但我觉得有一个 "obvious" 高阶函数/集合论技术让我望而却步。

if array.contains(element) {
    array.removeObject(object: element)
}
else {
    array.append(element)
}

我认为解决方案本身不一定 更好 ,这只是我每次写这篇文章时都会想到的事情。

您可以尝试使用 Set

var set: Set<Int> = [1, 2, 4]
if !set.insert(4).inserted {
    set.remove(4)
}

我找到了集合论中让我望而却步的部分!我想要的结果是 Symmetric Difference of the two arrays and this is included in Swift's set:

var element = Set([1])
var set = Set([1, 2, 3])

set = set.symmetricDifference(element) //2, 3
set = set.symmetricDifference(element) //1, 2, 3