AnyCollection
A type-erased wrapper over any collection with indices that support forward traversal.
@frozen struct AnyCollection<Element>
An AnyCollection
instance forwards its operations to a base collection having the same Element
type, hiding the specifics of the underlying collection.
Citizens in Swift
Conformances
protocol Collection
A sequence whose elements can be traversed multiple times, nondestructively, and accessed by an indexed subscript.
protocol Sequence
A type that provides sequential, iterated access to its elements.
Members
init(AnyCollection
<Element>) Creates an
AnyCollection
having the same underlying collection asother
.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.
init(AnyRandomAccessCollection
<Element>) Creates an
AnyCollection
having the same underlying collection asother
.init(AnyBidirectionalCollection
<Element>) Creates an
AnyCollection
having the same underlying collection asother
.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 startIndex: AnyCollection<Element>.Index
The position of the first element in a non-empty collection.
var underestimatedCount: Int
subscript(Range
<AnyCollection<Element>.Index>) -> AnyCollection<Element>.SubSequence subscript(AnyCollection
<Element>.Index) -> Element Accesses the element indicated by
position
.func distance(from: AnyCollection<Element>.Index, to: AnyCollection<Element>.Index
) -> Int func drop(while: (Element) throws -> Bool
) rethrows -> AnyCollection<Element> func dropFirst(Int
) -> AnyCollection<Element> func dropLast(Int
) -> AnyCollection<Element> func filter((Element) throws -> Bool
) rethrows -> [Element] func forEach((Element) throws -> Void
) rethrows func formIndex(inout AnyCollection
<Element>.Index, offsetBy: Int) func formIndex(inout AnyCollection
<Element>.Index, offsetBy: Int, limitedBy: AnyCollection<Element>.Index) -> Bool func formIndex(after: inout AnyCollection<Element>.Index
) func index(AnyCollection
<Element>.Index, offsetBy: Int) -> AnyCollection<Element>.Index func index(AnyCollection
<Element>.Index, offsetBy: Int, limitedBy: AnyCollection<Element>.Index) -> AnyCollection<Element>.Index? func index(after: AnyCollection<Element>.Index
) -> AnyCollection<Element>.Index func makeIterator(
) -> AnyCollection<Element>.Iterator Returns an iterator over the elements of this collection.
func map<T>((Element) throws -> T
) rethrows -> [T] func prefix(Int
) -> AnyCollection<Element> func prefix(while: (Element) throws -> Bool
) rethrows -> AnyCollection<Element> func suffix(Int
) -> AnyCollection<Element> typealias Index
typealias Indices
typealias Iterator
typealias SubSequence
Features
var first: Self.Element?
The first element of the collection.
var lazy: LazySequence<Self>
A sequence containing the same elements as this sequence, but on which some operations, such as
map
andfilter
, are implemented lazily.func allSatisfy((Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.
func compactMap<ElementOfResult>((Self.Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] Returns an array containing the non-
nil
results of calling the given transformation with each element of this sequence.func contains(Self
.Element) -> Bool Returns a Boolean value indicating whether the sequence contains the given element.
func contains(where: (Self.Element) throws -> Bool
) rethrows -> Bool Returns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.
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: (Self.Element, OtherSequence.Element) throws -> Bool
) rethrows -> 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<Self> 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: (Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the first element of the sequence that satisfies the given predicate.
func firstIndex(of: Self.Element
) -> Self.Index? Returns the first index where the specified value appears in the collection.
func firstIndex(where: (Self.Element) throws -> Bool
) rethrows -> Self.Index? Returns the first index in which an element of the collection satisfies the given predicate.
func flatMap<SegmentOfResult>((Self.Element) throws -> SegmentOfResult
) rethrows -> [SegmentOfResult.Element] Returns an array containing the concatenated results of calling the given transformation with each element of this sequence.
func joined(
) -> FlattenSequence<Self> Returns the elements of this sequence of sequences, concatenated.
func joined<Separator>(separator: Separator
) -> JoinedSequence<Self> 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: (Self.Element, Self.Element) throws -> Bool
) rethrows -> 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 map<T>((Self.Element) throws -> T
) rethrows -> [T] Returns an array containing the results of mapping the given closure over the sequence’s elements.
func map<T>((Self.Element) throws -> T
) rethrows -> [T] Returns an array containing the results of mapping the given closure over the sequence’s elements.
func max(
) -> Self.Element? Returns the maximum element in the sequence.
func max(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the maximum element in the sequence, using the given predicate as the comparison between elements.
func min(
) -> Self.Element? Returns the minimum element in the sequence.
func min(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> Self.Element? Returns the minimum element in the sequence, using the given predicate as the comparison between elements.
func popFirst(
) -> Self.Element? Removes and returns the first element of the collection.
func prefix(through: Self.Index
) -> Self.SubSequence Returns a subsequence from the start of the collection through the specified position.
func prefix(upTo: Self.Index
) -> Self.SubSequence Returns a subsequence from the start of the collection up to, but not including, the specified position.
func randomElement(
) -> Self.Element? Returns a random element of the collection.
func randomElement<T>(using: inout T
) -> Self.Element? Returns a random element of the collection, using the given generator as a source for randomness.
func reduce<Result>(Result, (Result, Self.Element) throws -> Result
) rethrows -> Result Returns the result of combining the elements of the sequence using the given closure.
func reduce<Result>(into: Result, (inout Result, Self.Element) throws -> ()
) rethrows -> Result Returns the result of combining the elements of the sequence using the given closure.
func removeFirst(
) -> Self.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(
) -> [Self.Element] Returns an array containing the elements of this sequence in reverse order.
func shuffled(
) -> [Self.Element] Returns the elements of the sequence, shuffled.
func shuffled<T>(using: inout T
) -> [Self.Element] Returns the elements of the sequence, shuffled using the given generator as a source for randomness.
func sorted(
) -> [Self.Element] Returns the elements of the sequence, sorted.
func sorted(by: (Self.Element, Self.Element) throws -> Bool
) rethrows -> [Self.Element] Returns the elements of the sequence, sorted using the given predicate as the comparison between elements.
func split(maxSplits: Int, omittingEmptySubsequences: Bool, whereSeparator: (Self.Element) throws -> Bool
) rethrows -> [Self.SubSequence] Returns the longest possible subsequences of the collection, in order, that don’t contain elements satisfying the given predicate.
func split(separator: Self.Element, maxSplits: Int, omittingEmptySubsequences: Bool
) -> [ArraySlice<Self.Element>] Returns the longest possible subsequences of the sequence, in order, around elements equal to the given element.
func split(separator: Self.Element, maxSplits: Int, omittingEmptySubsequences: Bool
) -> [Self.SubSequence] 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: (Self.Element, PossiblePrefix.Element) throws -> Bool
) rethrows -> 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: Self.Index
) -> Self.SubSequence Returns a subsequence from the specified position to the end of the collection.
func flatMap<ElementOfResult>((Self.Element) throws -> ElementOfResult?
) rethrows -> [ElementOfResult] func index(of: Self.Element
) -> Self.Index? Returns the first index where the specified value appears in the collection.