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