for (i in 0 until result.size){ result[i].config= addConfig(taskNames!![i],processKeys!![i]) }
여기 결과는 datamember config가있는 클래스 목록이고 tasNames 및 processKeys는 문자열 목록입니다. kotlin에서 기존 루프를 사용하고 결과 길이를 언급하지 않고 각 taskNames 및 processKeys로 result.config를 매핑하는 방법이 있습니까?
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}
결과가 이미 datamember 구성 pf 유형 ProcessVariable과 함께 존재합니다.
문제를 올바르게 이해했다면 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)
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다