阻止主题存储在变量中时

超级短篇文章,关于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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值