Kotlin快捷方式,使用流函数或其他函数将值分配给变量

时间:2020-08-01 11:36:36

标签: kotlin

for (i in 0 until result.size){ result[i].config= addConfig(taskNames!![i],processKeys!![i]) }

这里是具有数据成员config的类的列表,而tasNames和processKeys是字符串列表。 kotlin中有没有一种方法可以使用各自的taskNames和processKeys映射result.config,而无需使用传统的循环并提及结果的长度。我是kotlin的新手。

class Process {
var processKey: String? = null
var task: List<Task>? = null}

class Task {
var taskName: String? = null
var processVariables: List<ProcessVariable>? = null}

class ProcessVariable {
var name: String? = null
var label: String? = null
var applicableValue: List<String>? = null}

数据成员配置pf类型为ProcessVariable的结果已经存在

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,则需要合并3个列表。 因此,与某些聪明的列表转换方法相比,遍历列表可能更容易理解。

您可以摆脱传统的for循环,因此无需计算循环的大小:

result.forEachIndexed { 
    i, resultData -> resultData.config = addConfig(taskNames[i], processKeys[i])
}

如果要合并两个列表,可以使用zip方法:

val configList = taskNames.zip(processKeys) {tsk, prc -> addConfig(tsk, prc)}

在您的示例中,结果对象已经存在。也许创建新的结果对象比较容易:

val results = configList.map { 
    Result(config = it)
}