Returns a subsequence from the start of the collection up to, but not including, the specified position.
SDK
- Xcode 8.0+
Framework
- Swift Standard Library
Declaration
func prefix(upTo end: Int) -> ArraySlice <Element>
Parameters
endThe “past the end” index of the resulting subsequence.
endmust 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(up method is equivalent to using a partial half-open range as the collection’s subscript. The subscript notation is preferred over prefix(up.
if let i = numbers.firstIndex(of: 40) {
print(numbers[..<i])
}
// Prints "[10, 20, 30]"
Complexity: O(1)