---
title: "firstIndex(where:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/uint64/words-swift.struct/firstindex(where:)"
---

# firstIndex(where:)

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

## Declaration

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

## 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

Return Value The index of the first element for which predicate returns true. If no elements in the collection satisfy the given predicate, returns nil.

## Discussion

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. Here’s an example that finds a student name that begins with the letter “A”: let students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"] if let i = students.firstIndex(where: { $0.hasPrefix("A") }) {     print("\(students[i]) starts with 'A'!") } // Prints "Abena starts with 'A'!" note: O(n), where n is the length of the collection.
