gpt4 book ai didi

android - 在Kotlin中将项目集合与另一个集合进行转换

转载 作者:行者123 更新时间:2023-12-02 13:39:53 25 4
gpt4 key购买 nike

我有一些物品。每个项目内部都有另一个集合。
为了转换第一个集合,我使用了mapNotNull。
我正在尝试达到这样的目标:

data class QuestionData(        
val items: List<Question>
)

val questions = listOf(
QuestionData(0, emptyList()),
QuestionData(1, listOf(Question(2, emptyList()))),
)

fun convertItem(item: QuestionData): QuestionEntity {
return QuestionEntity(item)
}


val result: List<QuestionEntity> = questions.mapNotNull {
convertItem(it)
it.items.forEach {it2-> convertItem(it2) }
}

但这不起作用。

最佳答案

传递给mapNotNull函数的lambda主体不返回初始项,因为forEach返回Unit作为lambda主体中的最后一条语句,因此最终结果为List
您应该从 it返回 mapNotNull,以使其正常工作
例如:

data class Question(
var someCounter: Int,
val items: List<Question>
)

val questions = listOf(
Question(0, emptyList()),
Question(1, listOf(Question(2, emptyList()))),
)

fun convertItem(item: Question) {
item.someCounter++
}

val result = questions.mapNotNull {
convertItem(it)
it.items.forEach { it2 -> convertItem(it2) }
it
}
即使它不是很惯用的代码,但也要从头开始

关于android - 在Kotlin中将项目集合与另一个集合进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64571533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com