Я использую лямбду для обработки обратных вызовов от асинхронного вызова. Я хотел бы определить обратный вызов вне вызывающего метода, чтобы избежать громоздкого метода, но я не могу использовать ранние возвраты в лямбда-выражении, что делает код излишне трудным для чтения.
Я пытался определить лямбду как переменную, но возвраты внутри лямбды не осуществимы.
Я пытался определить лямбду внутри функции и возвращать ее, но и там возврата не было.
Например:
private fun onDataUpdated(): (Resource<List<Int>>) -> Unit = {
if (it.data.isNullOrEmpty()) {
// Handle no data callback and return early.
return@onDataUpdated // This is not allowed
}
// Handle the data update
}
}
Я тоже пробовал:
private val onDataUpdated: (Resource<List<Int>>) -> Unit = {
if (it.data.isNullOrEmpty()) {
// Handle no data callback and return early.
return // This is not allowed
}
// Handle the data update
}
}
Я хотел бы выполнить ранний возврат вместо использования другого случая, чтобы избежать ненужного отступа, но я не могу найти способ использовать возврат внутри лямбды.