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

# first(where:)

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

## Declaration

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

## Discussion

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." note: O(n), where n is the length of the sequence.

## See Also

### Finding Characters

- [contains(_:)](swift/string/contains(_:).md)
- [allSatisfy(_:)](swift/string/allsatisfy(_:).md)
- [contains(where:)](swift/string/contains(where:).md)
- [firstIndex(of:)](swift/string/firstindex(of:).md)
- [firstIndex(where:)](swift/string/firstindex(where:).md)
- [last(where:)](swift/string/last(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)
