docs/data/core-sumbyerr.md
Sums the values computed by a predicate across a collection, stopping early and returning an error if the predicate returns one. Returns 0 for an empty collection.
strings := []string{"foo", "bar", "baz"}
sum, err := lo.SumByErr(strings, func(item string) (int, error) {
if item == "bar" {
return 0, fmt.Errorf("invalid item: %s", item)
}
return len(item), nil
})
// sum: 3, err: invalid item: bar
strings := []string{"foo", "bar"}
sum, err := lo.SumByErr(strings, func(item string) (int, error) {
return len(item), nil
})
// sum: 6, err: nil
strings := []string{}
sum, err := lo.SumByErr(strings, func(item string) (int, error) {
return len(item), nil
})
// sum: 0, err: nil