Instance Method

insert(_:)

Inserts the given element in the set if it is not already present.

Declaration

@discardableResult mutating func insert(_ newMember: Set.Element) -> (inserted: Bool, memberAfterInsert: Set.Element)

Parameters

newMember

An element to insert into the set.

Return Value

(true, newMember) if newMember was not contained in the set. If an element equal to newMember was already contained in the set, the method returns (false, oldMember), where oldMember is the element that was equal to newMember. In some cases, oldMember may be distinguishable from newMember by identity comparison or some other means.

Discussion

If an element equal to newMember is already contained in the set, this method has no effect. In the following example, a new element is inserted into classDays, a set of days of the week. When an existing element is inserted, the classDays set does not change.

enum DayOfTheWeek: Int {
    case sunday, monday, tuesday, wednesday, thursday,
        friday, saturday
}

var classDays: Set<DayOfTheWeek> = [.wednesday, .friday]
print(classDays.insert(.monday))
// Prints "(true, .monday)"
print(classDays)
// Prints "[.friday, .wednesday, .monday]"

print(classDays.insert(.friday))
// Prints "(false, .friday)"
print(classDays)
// Prints "[.friday, .wednesday, .monday]"

Relationships

From Protocol

See Also

Adding and Removing Elements

func update(with: Set.Element)

Inserts the given element into the set unconditionally.

func reserveCapacity(Int)

Reserves enough space to store the specified number of elements.

Beta