Back to Lo

Core Mapkeyserr

docs/data/core-mapkeyserr.md

1.53.0618 B
Original Source

Transforms map keys using a predicate while keeping values. Returns an error if the iteratee function fails, stopping iteration immediately.

go
in := map[int]int{1: 1, 2: 2, 3: 3}
out, err := lo.MapKeysErr(in, func(v int, _ int) (string, error) {
    if v == 2 {
        return "", fmt.Errorf("even number not allowed")
    }
    return strconv.Itoa(v), nil
})
// map[string]int(nil), error("even number not allowed")
go
in := map[int]int{1: 1, 2: 2, 3: 3}
out, err := lo.MapKeysErr(in, func(v int, _ int) (string, error) {
    return strconv.Itoa(v), nil
})
// map[string]int{"1":1, "2":2, "3":3}, nil