Subscript

subscript(_:)

Accesses a contiguous subrange of the array’s elements.

Declaration

subscript(bounds: Range<Int>) -> ArraySlice<Element> { get set }

Parameters

bounds

A range of integers. The bounds of the range must be valid indices of the array.

Discussion

The returned ArraySlice instance uses the same indices for the same elements as the original array. In particular, that slice, unlike an array, may have a nonzero startIndex and an endIndex that is not equal to count. Always use the slice’s startIndex and endIndex properties instead of assuming that its indices start or end at a particular value.

This example demonstrates getting a slice of an array of strings, finding the index of one of the strings in the slice, and then using that index in the original array.

let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
let streetsSlice = streets[2 ..< streets.endIndex]
print(streetsSlice)
// Prints "["Channing", "Douglas", "Evarts"]"

let i = streetsSlice.firstIndex(of: "Evarts")    // 4
print(streets[i!])
// Prints "Evarts"

See Also

Accessing Elements

subscript(Int) -> Element

Accesses the element at the specified position.

var first: Element?

The first element of the collection.

var last: Element?

The last element of the collection.

subscript(Range<Int>) -> Slice<Array<Element>>

Accesses a contiguous subrange of the collection’s elements.

subscript<R>(R) -> ArraySlice<Element>

Accesses the contiguous subrange of the collection’s elements specified by a range expression.

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.