Instance Method

prefix(upTo:)

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

Declaration

func prefix(upTo end: Index) -> Substring

Parameters

end

The “past the end” index of the resulting subsequence. end must be a valid index of the collection.

Return Value

A subsequence up to, but not including, the end position.

Discussion

The resulting subsequence does not include the element at the position end. The following example searches for the index of the number 40 in an array of integers, and then prints the prefix of the array up to, but not including, that index:

let numbers = [10, 20, 30, 40, 50, 60]
if let i = numbers.firstIndex(of: 40) {
    print(numbers.prefix(upTo: i))
}
// Prints "[10, 20, 30]"

Passing the collection’s starting index as the end parameter results in an empty subsequence.

print(numbers.prefix(upTo: numbers.startIndex))
// Prints "[]"

Using the prefix(upTo:) method is equivalent to using a partial half-open range as the collection’s subscript. The subscript notation is preferred over prefix(upTo:).

if let i = numbers.firstIndex(of: 40) {
    print(numbers[..<i])
}
// Prints "[10, 20, 30]"

Complexity: O(1)

See Also

Getting Substrings

subscript(Range<String.Index>) -> Substring

Accesses a contiguous subrange of the collection’s elements.

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(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.