---
title: endIndex
framework: swift
role: symbol
role_heading: Instance Property
path: swift/array/endindex
---

# endIndex

The array’s “past the end” position—that is, the position one greater than the last valid subscript argument.

## Declaration

```swift
var endIndex: Int { get }
```

## Discussion

Discussion When you need a range that includes the last element of an array, use the half-open range operator (..<) with endIndex. The ..< operator creates a range that doesn’t include the upper bound, so it’s always safe to use with endIndex. For example: let numbers = [10, 20, 30, 40, 50] if let i = numbers.firstIndex(of: 30) {     print(numbers[i ..< numbers.endIndex]) } // Prints "[30, 40, 50]" If the array is empty, endIndex is equal to startIndex.

## See Also

### Manipulating Indices

- [startIndex](swift/array/startindex.md)
- [index(after:)](swift/array/index(after:).md)
- [formIndex(after:)](swift/array/formindex(after:).md)
- [index(before:)](swift/array/index(before:).md)
- [formIndex(before:)](swift/array/formindex(before:).md)
- [index(_:offsetBy:)](swift/array/index(_:offsetby:).md)
- [formIndex(_:offsetBy:)](swift/array/formindex(_:offsetby:).md)
- [index(_:offsetBy:limitedBy:)](swift/array/index(_:offsetby:limitedby:).md)
- [formIndex(_:offsetBy:limitedBy:)](swift/array/formindex(_:offsetby:limitedby:).md)
- [distance(from:to:)](swift/array/distance(from:to:).md)
