---
title: "last(where:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/string/last(where:)"
---

# last(where:)

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

## Declaration

```swift
func last(where predicate: (Self.Element) throws -> Bool) rethrows -> Self.Element?
```

## Parameters

- `predicate`: A closure that takes an element of the sequence as its argument and returns a Boolean value indicating whether the element is a match.

## Return Value

Return Value The last element of the sequence that satisfies predicate, or nil if there is no element that satisfies predicate.

## Discussion

Discussion This example uses the last(where:) method to find the last negative number in an array of integers: let numbers = [3, 7, 4, -2, 9, -6, 10, 1] if let lastNegative = numbers.last(where: { $0 < 0 }) {     print("The last negative number is \(lastNegative).") } // Prints "The last negative number is -6." note: O(n), where n is the length of the collection.

## See Also

### Finding Characters

- [contains(_:)](swift/string/contains(_:).md)
- [allSatisfy(_:)](swift/string/allsatisfy(_:).md)
- [contains(where:)](swift/string/contains(where:).md)
- [first(where:)](swift/string/first(where:).md)
- [firstIndex(of:)](swift/string/firstindex(of:).md)
- [firstIndex(where:)](swift/string/firstindex(where:).md)
- [lastIndex(of:)](swift/string/lastindex(of:).md)
- [lastIndex(where:)](swift/string/lastindex(where:).md)
- [max()](swift/string/max().md)
- [max(_:_:)](swift/string/max(_:_:).md)
- [max(by:)](swift/string/max(by:).md)
- [min()](swift/string/min().md)
- [min(_:_:)](swift/string/min(_:_:).md)
- [min(by:)](swift/string/min(by:).md)
