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

Android 在kotlin中使用Elvis运算符中的多行,android,kotlin,Android,Kotlin,我在Android Studio中有以下代码: val newUser = !intent.hasExtra("newUser") val userData = intent.getParcelableExtra("newUser") ?: UserData() 这段代码中有一个问题。如果意图中存在一个非UserData的额外项,并且其键为“newUser”,则newUser将变为false,但UserData将变为UserData的新实例。 我在找这样的东西: val use

我在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()
}

我知道这不起作用,但有办法吗?

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

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