Files
lo/docs/data/core-minindexbyerr.md
T
Samuel Berthe fa095e4b4f fix(doc): fix go playground demo URL (#832)
* fix(doc): fix go playground demo URL

* fix(doc): add more go playground demo URL
2026-03-06 00:09:59 +01:00

1.6 KiB

name, slug, sourceRef, category, subCategory, playUrl, signatures, variantHelpers, similarHelpers, position
name slug sourceRef category subCategory playUrl signatures variantHelpers similarHelpers position
MinIndexByErr minindexbyerr find.go#L404 core find https://go.dev/play/p/MUqi_NvTKM1
func MinIndexByErr[T any](collection []T, comparison func(a T, b T) (bool, error)) (T, int, error)
core#find#minindexbyerr
core#find#minindexby
core#find#min
core#find#minby
core#find#minbyerr
core#find#minindex
core#find#max
core#find#maxby
core#find#maxbyerr
core#find#maxindex
core#find#maxindexby
core#find#maxindexbyerr
core#math#sum
core#math#sumbyerr
core#math#mean
core#math#meanbyerr
core#math#product
core#math#productbyerr
core#math#mode
171

Searches the minimum value using a comparison function and returns the value and its index. Returns (zero value, -1, nil) when empty. Stops iteration immediately when an error is encountered.

type Point struct{ X int }
value, idx, err := lo.MinIndexByErr([]Point{{1}, {5}, {3}}, func(a, b Point) (bool, error) {
    return a.X < b.X, nil
})
// value == {1}, idx == 0, err == nil
// Error case - stops on first error
_, _, err := lo.MinIndexByErr([]Point{{1}, {5}, {0}}, func(a, b Point) (bool, error) {
    if a.X == 0 || b.X == 0 {
        return false, fmt.Errorf("zero value not allowed")
    }
    return a.X < b.X, nil
})
// error("zero value not allowed")
// Error case on first comparison
_, _, err := lo.MinIndexByErr([]Point{{1}, {5}}, func(a, b Point) (bool, error) {
    return false, fmt.Errorf("comparison error")
})
// error("comparison error")