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

问题描述 投票:2回答:1

我在Android Studio中有这个代码:

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

此代码中存在问题。如果一个额外的不是UserData存在于意图中,如果它的关键是“newUser”,newUser变成falseuserData成为UserData的新实例。我正在寻找这样的东西:

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

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

android kotlin
1个回答
8
投票

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

val userData = intent.getParcelableExtra("newUser") ?: run {
    newUser = true
    UserData() 
}
© www.soinside.com 2019 - 2024. All rights reserved.