mono.intersectObjects.forEachIndexed { id, m ->
if (m == null) {
println(id)
mono.intersectObjects[id] = mono2
return@forEachIndexed
}
}
}
mono.intersectObjects забит null, return@forEachIndexed не срабатывает и заполняет всё.
При первом встречном null хочу заменить его на требуемое значение и выйти.
return@forEachIndexed завершает только текущую лямбду. Поэтому получается, что это такой аналог continue Проще всего несколько упростить код, отказавшись от цикла: if (elem !in arr && arr.indexOf(null) != -1) { arr[arr.indexOf(null)] = elem }
filter + one (получить одно сначение)
если уверен что у тебя будет null то if можно опустить val list = mutableListOf("a", "B", null, "C", null) // return -1 если нет искомого элемента val index = list.indexOfFirst { it == null } if (index != -1) list[index] = "newValue" // or list.indexOfFirst { it == null } .let { if (it != -1) list[index] = "newValue" } println(list)
Обсуждают сегодня