Instance Method インスタンスメソッド

remove(_:)

Removes the given element and all elements subsumed by it. 与えられた要素とそれによって包括されるすべての要素を除去します。

Declaration 宣言

@discardableResult mutating func remove(_ member: Self.Element) -> Self.Element?
Available when Self is Self.Element. SelfSelf.Elementである時に利用可能です。

Return Value 戻り値

The intersection of [member] and the set, if the intersection was nonempty; otherwise, nil. [member]とこの集合の交叉、その交叉が空でなかったならば;そうでなければ、nil

Parameters パラメータ

member

The element of the set to remove. 除去されることになる集合の要素。

Discussion 議論

In the following example, the .priority shipping option is removed from the options option set. Attempting to remove the same shipping option a second time results in nil, because options no longer contains .priority as a member. 以下の例において、.priority出荷オプションは、optionsオプションセットから除去されます。同じ出荷オプションの除去を2回目に試みることはnilという結果になります、optionsはもはや.priorityをメンバとして含まないからです。


var options: ShippingOptions = [.secondDay, .priority]
let priorityOption = options.remove(.priority)
print(priorityOption == .priority)
// Prints "true"


print(options.remove(.priority))
// Prints "nil"

In the next example, the .express element is passed to remove(_:). Although .express is not a member of options, .express subsumes the remaining .secondDay element of the option set. Therefore, options is emptied and the intersection between .express and options is returned. 次の例では、.express要素がremove(_:)に渡されます。とは言え.expressoptionsのメンバではありません、しかし.expressはこのオプションセットの残りの要素.secondDayを包含します。したがって、optionsは空にされて.expressoptionsの間の交叉が返されます。


let expressOption = options.remove(.express)
print(expressOption == .express)
// Prints "false"
print(expressOption == .secondDay)
// Prints "true"