代码之家  ›  专栏  ›  技术社区  ›  mohammad

在kotlin中使用Elvis运算符中的多行

  •  18
  • mohammad  · 技术社区  · 8 年前

    我在Android Studio中有以下代码:

        val newUser = !intent.hasExtra("newUser")
        val userData = intent.getParcelableExtra("newUser") ?: UserData()
    

    此代码中存在问题。如果不是额外的 UserData 存在于intent中,如果其密钥为“newUser”, newUser 成为 false 但是 userData 成为的新实例 用户数据 . 我在找这样的东西:

    val userData = intent.getParcelableExtra("newUser") ?: {
        newUser = true
        UserData()
    }
    

    我知道这个代码不起作用,但有办法做到吗?

    1 回复  |  直到 4 年前
        1
  •  42
  •   yole    8 年前

    您可以在 run 功能:

    val userData = intent.getParcelableExtra("newUser") ?: run {
        newUser = true
        UserData() 
    }