Instance Method

# lastIndex(where:)

Returns the index of the last element in the collection that matches the given predicate.

## Declaration

Available when Bound conforms to Strideable and Bound.Stride conforms to SignedInteger.

## Parameters

`predicate`

A closure that takes an element as its argument and returns a Boolean value that indicates whether the passed element represents a match.

## Return Value

The index of the last element in the collection that matches `predicate`, or `nil` if no elements match.

## Discussion

You can use the predicate to find an element of a type that doesn’t conform to the `Equatable` protocol or to find an element that matches particular criteria. This example finds the index of the last name that begins with the letter A:

Complexity: O(n), where n is the length of the collection.

### Finding Elements

`func first(where: (Bound) -> Bool) -> Bound?`

Returns the first element of the sequence that satisfies the given predicate.

`func firstIndex(of: Bound) -> Bound?`

Returns the first index where the specified value appears in the collection.

`func firstIndex(where: (Bound) -> Bool) -> Bound?`

Returns the first index in which an element of the collection satisfies the given predicate.

`func last(where: (Bound) -> Bool) -> Bound?`

Returns the last element of the sequence that satisfies the given predicate.

`func lastIndex(of: Bound) -> Bound?`

Returns the last index where the specified value appears in the collection.

`func min() -> Bound?`

Returns the minimum element in the sequence.

`func min(by: (Bound, Bound) -> Bool) -> Bound?`

Returns the minimum element in the sequence, using the given predicate as the comparison between elements.

`func max() -> Bound?`

Returns the maximum element in the sequence.

`func max(by: (Bound, Bound) -> Bool) -> Bound?`

Returns the maximum element in the sequence, using the given predicate as the comparison between elements.