«Правильный» идиоматический способ сделать это - использовать «первый» метод.
Примере:
val x = listOf<Int?>(null, null, 3, null, 8).first { it != null }
Его конкретный пример будет
return list.first {getNullableValue(it) != null}
Это может быть что-то вроде:
for (item in list) {
getNullableValue(item)?.also {
return it
}
}
Я предполагаю, что внешний цикл необходим. Если это не так, Рыба предложил решение должно работать.
Не уверен, что это будет называться идиоматическим, но вы могли бы сделать это:
val nullableValue = list.find { it != null }
if (nullableValue != null) {
return nullableValue
}
Редактировать:
Основываясь на ответе s1m0nw1, вы, вероятно, можете сократить его до следующего:
list.find { it != null }?.let {
return it
}