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.61k stars 85 forks source link

Some(aMap["nonExistingKey"]).OrElse("FallBackValue")? #15

Closed tigerinus closed 1 year ago

tigerinus commented 1 year ago

For aMap map[string]string, can I do Some(aMap["nonExistingKey"]).OrElse("FallBackValue")?

It seems to return empty string all the time.

Thanks.

samber commented 1 year ago

Hi @tigerinus

I think you should use mo.EmptyableToOption(aMap["nonExistingKey"]).OrElse(...).

mo.Some instantiate an Option with a value, even if this value is empty.

mo.EmptyableToOption check the zero value and calls mo.None or mo.Some