I don’t think special treatment of if
in such a special edge case is justified. Kotlin tries to push you toward immutability and reducing side effects, and a when
expression with a Unit
return type just screams “SIDE EFFECT”. Sure, a lot of the time you can’t avoid those cases, but I’m not sure the language should actively encourage them. I think having a little more verbosity in a case like this is quite acceptable, because it makes inadvertently creating side effects harder.
3 Likes