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

时间:2018-03-01 19:31:24

标签: android kotlin

我在Android Studio中有这段代码:

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

此代码存在问题。如果在意图中存在额外的UserData,并且其密钥为" newUser",newUser变为false,但userData变为UserData的新实例。 我正在寻找这样的东西:

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

我认为这不起作用但有办法吗?

1 个答案:

答案 0 :(得分:8)

您可以将块包装在run函数中:

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