Instance Method

last(where:)

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

Declaration

func last(where predicate: (Character) throws -> Bool) rethrows -> Character?

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

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

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

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

See Also

Finding Characters

func contains(Character) -> Bool

Returns a Boolean value indicating whether the sequence contains the given element.

func allSatisfy((Character) -> Bool) -> Bool

Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.

func contains(where: (Character) -> Bool) -> Bool

Returns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.

func first(where: (Character) -> Bool) -> Character?

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

func firstIndex(of: Character) -> String.Index?

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

func firstIndex(where: (Character) -> Bool) -> String.Index?

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

func lastIndex(of: Character) -> String.Index?

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

func lastIndex(where: (Character) -> Bool) -> String.Index?

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

func max() -> Character?

Returns the maximum element in the sequence.

func max(by: (Character, Character) -> Bool) -> Character?

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

func min() -> Character?

Returns the minimum element in the sequence.

func min(by: (Character, Character) -> Bool) -> Character?

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