小编Bub*_*ees的帖子

在 Kotlin 中返回转换后的第一个非空值

我想在 Kotlin 中的元素列表转换后返回第一个非空值,所以像这样:

suspend fun myFunction(): Any {
    val firstNonNullId = this.mapNotNull{ it.id }
        ?.first{ transform(id) != null }

    return transform(firstNonNullID)
}
Run Code Online (Sandbox Code Playgroud)

编写这个函数的更好、更惯用的方法是什么?transform(it)我想尽可能少地调用,并且所讨论的转换也是一个suspend函数。

编辑:当是函数时,解决asSequence()方案会给出错误,因为它必须从协程主体调用。即使整体是一个挂起函数,也会发生这种情况。当转换是挂起函数时,解决方案应该是什么?transform()suspendmyFunction()

list kotlin

5
推荐指数
1
解决办法
2995
查看次数

标签 统计

kotlin ×1

list ×1