Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option.Map results in exception creating a new Some(null) #16

Open
dcook-net opened this issue Dec 5, 2019 · 0 comments
Open

Option.Map results in exception creating a new Some(null) #16

dcook-net opened this issue Dec 5, 2019 · 0 comments

Comments

@dcook-net
Copy link

Hi.
First off: reading the book at the moment and think it's great. Thank you.

I encountered a bug today when I tried to do this:

return Option<T>.Map(t => t.NullableA?.NullableB) // and either nullable A or B were null!

Creating a Some with a value of null threw an exception.
My first thought was 'why doesn't that just create a None instead of throwing' but then I realised Its because its within a constructor.

What would you recommend as a sensible replacement to the code above?
I replaced it with

return Option<T>.Match( Some: t => t.NullableA?.NullableB is null ? None : Some(b.NullableA?.NullableB), None:() => None);

I'm assuming I've misunderstood something.
Thanks
Dave

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant