Instance Method

first(where:)

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

Declaration

func first(where predicate: (Int) throws -> Bool) rethrows -> Int?

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 first element of the sequence that satisfies predicate, or nil if there is no element that satisfies predicate.

Discussion

The following example uses the first(where:) method to find the first negative number in an array of integers:

let numbers = [3, 7, 4, -2, 9, -6, 10, 1]
if let firstNegative = numbers.first(where: { $0 < 0 }) {
    print("The first negative number is \(firstNegative).")
}
// Prints "The first negative number is -2."

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

See Also

Finding Elements

func max() -> Int?

Returns the maximum element in the sequence.

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

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

func min() -> Int?

Returns the minimum element in the sequence.

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

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

func integerLessThanOrEqualTo(IndexSet.Element) -> IndexSet.Element?

Returns an integer contained in self which is less than or equal to integer, or nil if a result could not be found.

func integerGreaterThan(IndexSet.Element) -> IndexSet.Element?

Returns an integer contained in self which is greater than integer, or nil if a result could not be found.

func integerGreaterThanOrEqualTo(IndexSet.Element) -> IndexSet.Element?

Returns an integer contained in self which is greater than or equal to integer, or nil if a result could not be found.

func integerLessThan(IndexSet.Element) -> IndexSet.Element?

Returns an integer contained in self which is less than integer, or nil if a result could not be found.