Files
lo/docs/data/core-minbyerr.md
T
2026-03-02 16:06:51 +01:00

1.1 KiB

name, slug, sourceRef, category, subCategory, variantHelpers, similarHelpers, position, signatures
name slug sourceRef category subCategory variantHelpers similarHelpers position signatures
MinByErr minbyerr find.go#L349 core find
core#find#minbyerr
core#find#minby
core#find#min
core#find#minindex
core#find#minindexby
core#find#max
core#find#maxby
core#find#maxindex
core#find#maxindexby
161
func MinByErr[T any](collection []T, comparison func(a T, b T) (bool, error)) (T, error)

Searches the minimum value of a collection using the given comparison function. Returns the first minimal value; zero value and nil error when empty.

If the comparison function returns an error, iteration stops and the error is returned.

type Point struct{ X int }
min, err := lo.MinByErr([]Point{{1}, {5}, {3}}, func(a, b Point) (bool, error) {
    return a.X < b.X, nil
})
// {1}, <nil>

Example with error:

type Point struct{ X int }
min, err := lo.MinByErr([]Point{{1}, {5}, {3}}, func(a, b Point) (bool, error) {
    if a.X == 5 {
        return false, fmt.Errorf("cannot compare with 5")
    }
    return a.X < b.X, nil
})
// {0}, error("cannot compare with 5")