samber / mo

🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)
https://pkg.go.dev/github.com/samber/mo
MIT License
2.47k stars 80 forks source link

Option wrappers for slices and maps? #19

Closed renom closed 1 year ago

renom commented 1 year ago

Something like:

var s OptionSlice[[]int]
var m OptionMap[map[string]int]
fmt.Println(s.IsPresent(10), s.OrEmpty(10))
fmt.Println(m.IsPresent("key"), m.OrEmpty("key"))
samber commented 1 year ago

I think you should use github.com/samber/lo instead.

renom commented 1 year ago

lo.Contains and lo.FindOrElse checks for a value, not for index/key

renom commented 1 year ago

returning the default value with OrEmpty would help avoiding out of bounds error for slices