Set是一组无序且不重复元素的集合,与数组相似。
我想在一个String
类型的Set
中添加/插入多个元素,但Swift只提供了一个方法用于插入单个元素(该方法仅接受单个Set元素作为参数),而我的元素是字符串(id)集合。
@discardableResult mutating func insert(_ newMember: Set.Element) -> (inserted: Bool, memberAfterInsert: Set.Element)
我该怎么做?
我的尝试:
我尝试创建一个与insert(_:)
方法非常相似的扩展,但它可以接受多个Set元素。它将与对集合进行迭代相同,但不需要在每个地方手动处理它。
extension Set {
@discardableResult mutating func insert(_ newMembers: [Set.Element]) -> (inserted: Bool, memberAfterInsert: Set.Element) {
newMembers.forEach { (member) in
self.insert(member)
}
}
}
如果我按预期返回一个元组,那么它应该可以正常工作,但不知道如何在哪里(哪一行)以及如何返回值。
这里是错误消息。
在一个应该返回 '(inserted: Bool, memberAfterInsert: Set.Element)' 的函数中缺少返回
有什么解决方法吗?是否有更好的解决方案/方法来处理此操作?
insert(_:)
的默认/实际定义。我想创建一个相同的函数,但它应该接受多个Set元素。 - Krunalinserted: true
?当插入一个值时吗?没有不同行为的“相同函数”。由你决定函数返回什么。当所有值都被插入时呢?你的用例需要什么formUnion
不能提供的东西?无论如何,正如米兰所指出的那样,如果你想要返回它,你需要实际返回它。 - Rob Napier