Add ability to call block on Optional #20
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hey!
I really like then approach and wanted to extend it for optionals. Feature implemented in this PR is different from current Then, however similar in ideology.
It allows calling any custom block of code on optional, if optional contains
.Some
. Most common case for this would be[weak self]
in various kinds of completion blocks, however there are a lot more cases where you can use this approach.For example, let's say we need to use weak self, however pass self somewhere else as unwrapped optional, like this:
This would require multiple optional unwrappings and possibly even force unwraps. Another way to do this is to unwrap with guard:
Unwraps are gone, however we introduced new variable for self, which is not really convenient.
Meet Then from this PR: