Generic Structure

AnyCollection

A type-erased wrapper over any collection with indices that support forward traversal.

Declaration

struct AnyCollection<Element>

Overview

An AnyCollection instance forwards its operations to a base collection having the same Element type, hiding the specifics of the underlying collection.

Topics

Initializers

init(AnyCollection<AnyCollection<Element>.Element>)

Creates an AnyCollection having the same underlying collection as other.

init(AnyRandomAccessCollection<AnyCollection<Element>.Element>)

Creates an AnyCollection having the same underlying collection as other.

init(AnyBidirectionalCollection<AnyCollection<Element>.Element>)

Creates an AnyCollection having the same underlying collection as other.

init<C>(C)

Creates a type-erased collection that wraps the given collection.

init<C>(C)

Creates a type-erased collection that wraps the given collection.

init<C>(C)

Creates a type-erased collection that wraps the given collection.

Instance Properties

var count: Int

The number of elements in the collection.

var count: Int

The number of elements.

var endIndex: AnyCollection<Element>.Index

The collection’s “past the end” position—that is, the position one greater than the last valid subscript argument.

var first: Element?

The first element of the collection.

var indices: DefaultIndices<AnyCollection<Element>>

The indices that are valid for subscripting the collection, in ascending order.

var isEmpty: Bool

A Boolean value indicating whether the collection is empty.

var lazy: LazyCollection<AnyCollection<Element>>

A view onto this collection that provides lazy implementations of normally eager operations, such as map and filter.

var lazy: LazySequence<AnyCollection<Element>>

A sequence containing the same elements as this sequence, but on which some operations, such as map and filter, are implemented lazily.

var startIndex: AnyCollection<Element>.Index

The position of the first element in a non-empty collection.

var underestimatedCount: Int

A value less than or equal to the number of elements in the sequence, calculated nondestructively.

var underestimatedCount: Int

A value less than or equal to the number of elements in the collection.

Instance Methods

func allSatisfy((Element) -> Bool) -> Bool

Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.

func compactMap<ElementOfResult>((Element) -> ElementOfResult?) -> [ElementOfResult]

Returns an array containing the non-nil results of calling the given transformation with each element of this sequence.

func contains(Element) -> Bool

Returns a Boolean value indicating whether the sequence contains the given element.

func contains(where: (Element) -> Bool) -> Bool

Returns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.

func dropFirst() -> AnyCollection<Element>

Returns a subsequence containing all but the first element of the sequence.

func dropLast() -> AnyCollection<Element>

Returns a subsequence containing all but the last element of the sequence.

func elementsEqual<OtherSequence>(OtherSequence) -> Bool

Returns a Boolean value indicating whether this sequence and another sequence contain the same elements in the same order.

func elementsEqual<OtherSequence>(OtherSequence, by: (Element, OtherSequence.Element) -> Bool) -> Bool

Returns a Boolean value indicating whether this sequence and another sequence contain equivalent elements in the same order, using the given predicate as the equivalence test.

func enumerated() -> EnumeratedSequence<AnyCollection<Element>>

Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence.

func first(where: (Element) -> Bool) -> Element?

Returns the first element of the sequence that satisfies the given predicate.

func firstIndex(of: Element) -> AnyIndex?

Returns the first index where the specified value appears in the collection.

func firstIndex(where: (Element) -> Bool) -> AnyIndex?

Returns the first index in which an element of the collection satisfies the given predicate.

func joined() -> FlattenSequence<AnyCollection<Element>>

Returns the elements of this sequence of sequences, concatenated.

func joined() -> FlattenCollection<AnyCollection<Element>>

Returns the elements of this collection of collections, concatenated.

func joined<Separator>(separator: Separator) -> JoinedSequence<AnyCollection<Element>>

Returns the concatenated elements of this sequence of sequences, inserting the given separator between each element.

func joined(separator: String) -> String

Returns a new string by concatenating the elements of the sequence, adding the given separator between each element.

func lexicographicallyPrecedes<OtherSequence>(OtherSequence) -> Bool

Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the less-than operator (<) to compare elements.

func lexicographicallyPrecedes<OtherSequence>(OtherSequence, by: (Element, Element) -> Bool) -> Bool

Returns a Boolean value indicating whether the sequence precedes another sequence in a lexicographical (dictionary) ordering, using the given predicate to compare elements.

func makeIterator() -> AnyCollection<Element>.Iterator

Returns an iterator over the elements of this collection.

func map<T>((Element) -> T) -> [T]

Returns an array containing the results of mapping the given closure over the sequence’s elements.

func map<T>((Element) -> T) -> [T]

Returns an array containing the results of mapping the given closure over the sequence’s elements.

func max() -> Element?

Returns the maximum element in the sequence.

func max(by: (Element, Element) -> Bool) -> Element?

Returns the maximum element in the sequence, using the given predicate as the comparison between elements.

func min() -> Element?

Returns the minimum element in the sequence.

func min(by: (Element, Element) -> Bool) -> Element?

Returns the minimum element in the sequence, using the given predicate as the comparison between elements.

func popFirst() -> Element?

Removes and returns the first element of the collection.

func prefix(through: AnyIndex) -> AnyCollection<Element>

Returns a subsequence from the start of the collection through the specified position.

func prefix(upTo: AnyIndex) -> AnyCollection<Element>

Returns a subsequence from the start of the collection up to, but not including, the specified position.

func randomElement() -> Element?

Returns a random element of the collection.

func randomElement<T>(using: inout T) -> Element?

Returns a random element of the collection, using the given generator as a source for randomness.

func reduce<Result>(Result, (Result, Element) -> Result) -> Result

Returns the result of combining the elements of the sequence using the given closure.

func reduce<Result>(into: Result, (inout Result, Element) -> ()) -> Result

Returns the result of combining the elements of the sequence using the given closure.

func removeFirst() -> Element

Removes and returns the first element of the collection.

func removeFirst(Int)

Removes the specified number of elements from the beginning of the collection.

func reversed() -> [Element]

Returns an array containing the elements of this sequence in reverse order.

func shuffled() -> [Element]

Returns the elements of the sequence, shuffled.

func shuffled<T>(using: inout T) -> [Element]

Returns the elements of the sequence, shuffled using the given generator as a source for randomness.

func sorted() -> [Element]

Returns the elements of the sequence, sorted.

func sorted(by: (Element, Element) -> Bool) -> [Element]

Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.

func split(separator: Element, maxSplits: Int, omittingEmptySubsequences: Bool) -> [AnyCollection<Element>]

Returns the longest possible subsequences of the sequence, in order, around elements equal to the given element.

func split(separator: Element, maxSplits: Int, omittingEmptySubsequences: Bool) -> [AnyCollection<Element>]

Returns the longest possible subsequences of the collection, in order, around elements equal to the given element.

func starts<PossiblePrefix>(with: PossiblePrefix) -> Bool

Returns a Boolean value indicating whether the initial elements of the sequence are the same as the elements in another sequence.

func starts<PossiblePrefix>(with: PossiblePrefix, by: (Element, PossiblePrefix.Element) -> Bool) -> Bool

Returns a Boolean value indicating whether the initial elements of the sequence are equivalent to the elements in another sequence, using the given predicate as the equivalence test.

func suffix(from: AnyIndex) -> AnyCollection<Element>

Returns a subsequence from the specified position to the end of the collection.

Relationships

Conforms To

See Also

Type-Erasing Wrappers

struct AnyBidirectionalCollection

A type-erased wrapper over any collection with indices that support bidirectional traversal.

struct AnyRandomAccessCollection

A type-erased wrapper over any collection with indices that support random access traversal.

struct AnyIterator

A type-erased iterator of Element.

struct AnyIndex

A wrapper over an underlying index that hides the specific underlying type.

struct AnyHashable

A type-erased hashable value.