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

标签 android kotlin

我在 Android Studio 中有这段代码:

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

这段代码有问题。如果 extra 不是 UserData 存在于 intent 中并且它的键是“newUser”,则 newUser 变为 falseuserData 成为 UserData 的新实例。 我正在寻找这样的东西:

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

我知道这段代码行不通,但有办法吗?

最佳答案

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

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

关于android - 在 kotlin 的 Elvis 运算符中使用多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49057348/

相关文章:

Android ImageView 不断放大和缩小

android - 如何在 android 中切换不同的选项卡(如 tab1、tab2)时停止调用 onCreateView?

java - 计时器未在预定时间被调用

spring - @CreationTimestamp 和 @UpdateTimestamp 在 Kotlin 中不起作用

android - 将信息(文本或csv)添加到android中的图像

android - tinyAlsa 中的音频路由

android - 使用注入(inject)的模拟对象在 Android 单元测试中未执行回调

android - ActivityResultContracts.TakePicture 返回 "No such file or directory"

kotlin - Page 类的 graphql 架构定义应该是什么样子?

java - 在同一项目中使用 Java 和 Kotlin Activity