‘takeIf’ and ‘takeUnless’ : Kotlin

Ever thought of chaining an if condition?
What if we can chain the if condition also and moves or executes the next code in the chain only if the condition is true?

Kotlin has something very interesting to achieve the same.
We can use takeIf and takeUnless to achieve the same. As clear from the name itself, takeIf will proceed in the chain only if the condition inside is true whereas takeUnless is the counter of takeIf and will proceed only if the provided condition is false.

takeIf is a filtering function for a single object whereas takeUnless is a counter of takeIf.

Let’s take an example to understand the same.

In the above example, we need to check the latency of the network and join the game only it is less than 20. Now to achieve the same we need to put an if condition, the reason I need to introduce a new variable networkLatency is because I need to pass it to the inner function also.

Now to achieve the same within single chaining, I can use takeIf.

Please note that both takeIf and takeUnless returns null if the condition is not satisfied, so to chain it further we need to use the safe call or null check.

Let's take an example of takeUnless.

Please continue reading at https://agrawalsuneet.github.io/blogs/takeif-and-takeunless-kotlin/

That’s all for now. You can read my other interesting posts here or you can enjoy my games or apps listed here. Feel free to use my open-source Android components in your app listed here. Or drop an email, if you didn’t find what you are looking for and need some help.

Reference: Kotlin docs

--

--

https://agrawalsuneet.github.io/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store