Skip to content
Node: arr.find(fn)github.com/sahilkhaire/gox/slice

Find

Overview

Find returns the first element matching fn, or zero and false (Array.find).

If you are coming from Node.js, the closest pattern is arr.find(fn).

Signature

go
func Find[T any](in []T, fn func(T) bool) (T, bool)

Compare: Node.js · Standard Go · gox

js
const user = users.find(u => u.id === id);
go
var found User
var ok bool
for _, u := range users {
    if u.ID == id {
        found, ok = u, true
        break
    }
}
go
import "github.com/sahilkhaire/gox/slice"

user, ok := slice.Find(users, func(u User) bool { return u.ID == id })

Example

go
import "github.com/sahilkhaire/gox/slice"

user, ok := slice.Find(users, func(u User) bool { return u.ID == id })

Tips

Chain Filter, Map, and Reduce for lodash-style pipelines. Results are new slices — inputs are never mutated.

Standard library alternative

Use the standard library directly:

go
var found User
var ok bool
for _, u := range users {
    if u.ID == id {
        found, ok = u, true
        break
    }
}

Back to slice package overview

MIT Licensed · Built for Node.js developers moving to Go