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