超级短篇文章,关于Kotlin 1.3中引入的更改(是的,我知道它已经存在了一段时间了)。 我们将快速了解如何将when
块的主题捕获到范围变量中。 这是一种提高生活质量的方法,它可以节省一行代码,同时使变量的作用更加清晰。
以下是更改前的内容:
val enum = myClass.enum
when (enum) {
MyEnum.ONE -> println(enum.propertyOne)
MyEnum.TWO -> println(enum.propertyTwo)
else -> println(enum)
}
您现在可以改写为:
when (val enum: MyEnum = myClass.enum) {
MyEnum.ONE -> println(enum.propertyOne)
MyEnum.TWO -> println(enum.propertyTwo)
else -> println(enum)
}
enum
变量的实例化与when
块的声明合并。 enum
现在的作用域为when
块,无法在它之外访问。 虽然变化不大,但是确实使代码看起来更简洁。
让我们再看一个例子:
以下是更改前的内容:
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")
}
成为:
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")
}
关于这个主题,实际上没有什么要说的,因为首先没有太多要谈论的。 您可能已经了解了图片,如果我自己无法解释,那么Kotlin 1.3发行说明中的示例可能对您有意义。
如果您发现此帖子有帮助,可以在Twitter上@LankyDanDev关注我,以了解我的新帖子。
翻译自: https://www.javacodegeeks.com/2019/01/storing-when-block-subject-variable.html