Subscript

subscript(_:)

Accesses a contiguous subrange of the collection’s elements.

Declaration

subscript(r: Range<String.Index>) -> Substring { get }

Parameters

bounds

A range of the collection’s indices. The bounds of the range must be valid indices of the collection.

Discussion

The accessed slice uses the same indices for the same elements as the original collection uses. Always use the slice’s startIndex property instead of assuming that its indices start 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 index = streetsSlice.firstIndex(of: "Evarts")    // 4
print(streets[index!])
// Prints "Evarts"

Complexity: O(1)

See Also

Getting Substrings

subscript<R>(R) -> Substring

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

func prefix(Int) -> Substring

Returns a subsequence, up to the specified maximum length, containing the initial elements of the collection.

func prefix(through: Index) -> Substring

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

func prefix(upTo: Index) -> Substring

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

func prefix(while: (Character) -> Bool) -> Substring

Returns a subsequence containing the initial elements until predicate returns false and skipping the remaining elements.

func suffix(Int) -> Substring

Returns a subsequence, up to the given maximum length, containing the final elements of the collection.

func suffix(from: Index) -> Substring

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