initialization - Kotlin val 初始化使用 when

标签 initialization kotlin field final

使用 Java 我可能想使用 switch 语句初始化最终变量:

final String finalValue;

switch (condition) {
   case 1:
      finalValue = "One";
      break;
   case 2:
      finalValue = "Two";
      break;
   case 3:
      finalValue = "Three";
      break;
   default:
      finalValue = "Undefined";
      break;
}

在 Kotlin 中,尝试做同样的事情:

val finalValue: String

when (condition) {
   1 -> finalValue = "One"
   2 -> finalValue = "Two"
   3 -> finalValue = "Three"
   else -> finalValue = "Undefined"
}

导致编译错误。
一个解决方案是使用 bylazy 组合,但这会创建一个新的 Lazy 实例。

val finalValue: String by lazy {    
   when (condition) {
      1 -> "One"
      2 -> "Two"
      3 -> "Three"
      else -> "Undefined"
   }
}

有没有更好的方法来做到这一点?

最佳答案

这个结构怎么样:


    val finalValue: String = when (condition) {
        1 -> "One"
        2 -> "Two"
        3 -> "Three"
        else -> "Undefined"
    }

使用 when作为表达式。

关于initialization - Kotlin val 初始化使用 when,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48261505/

相关文章:

ios - 如何使用委托(delegate)来指示哪个 View Controller 充当初始 View Controller ?

java - 为什么 javac 提示没有初始化变量?

Kotlin,设置 var/val 一次以使其最终成为可能,这可能吗

java - 如何将密封的 Kotlin 类转换为 Java 类

java - 如何获取对象中字段的名称?

c++ - 返回值初始化

使用 vector 的 C++ 类初始化

mysql 检索字段名称作为记录集的一部分

android - 相机拍摄图像时如何设置图像垂直?

PHP:使用 Eclipse PDT 字段的类型提示