Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Storing When Block Subject in a Variable

DZone 's Guide to

Storing When Block Subject in a Variable

Learn how to write tidier code in Kotlin 1.3.

· Java Zone ·
Free Resource

Here is a super short post on a change introduced in Kotlin 1.3 (yes, I know it has been out for a while now). We will take a quick look at capturing the subject of a when block into a scoped variable. This is a quality of life improvement that saves a line or so of code while making the role of the variable clearer.

Below is what you would write before the change:

val enum = myClass.enum
when (enum) {
  MyEnum.ONE -> println(enum.propertyOne)
  MyEnum.TWO -> println(enum.propertyTwo)
  else -> println(enum)
}

You can now write this instead:

when (val enum: MyEnum = myClass.enum) {
  MyEnum.ONE -> println(enum.propertyOne)
  MyEnum.TWO -> println(enum.propertyTwo)
  else -> println(enum)
}

The instantiation of the enum variable is merged with the declaration of the when block. Enum is now scoped to the when block and cannot be accessed outside of it. Not a massive change, but it does make the code look a little tidier.

Let’s look at one more example:

val obj = someObject()
when(obj) {
  is String -> println("This is a string and it says $obj")
  is Number -> println("This is a number and its value is $obj")
  else -> println("I don't know what $obj is")
}

This becomes:

when(val obj = someObject()) {
  is String -> println("This is a string and it says $obj")
  is Number -> println("This is a number and its value is $obj")
  else -> println("I don't know what $obj is")
}

There is not really anything else to say on this subject as there isn’t much to talk about in the first place. You probably get the picture, the example from the Kotlin 1.3 Release Notes might make sense to you if I have failed to explain it myself.

If you found this post helpful, you can follow me on Twitter at @LankyDanDev to keep up with my latest posts.

Topics:
java ,tutorial ,storing ,variable ,kotlin ,kotlin tutorial ,kotlin tutorial for beginners ,block ,block subject ,kotlin 1.3

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}