Я пытаюсь создать инфиксную функцию для своего проекта, чтобы проверить результат функции try catch.
Я видел решение, но передаю блок в качестве параметра и запускаю этот блок внутри tryOrNull работает вот так.
fun <T : Any> tryOrNull(body: () -> T?): T? {
//the body returns T? so that you can give up the work by returning null
return try {
body()
} catch (e: Exception) {
e.printStackTrace()
null
}
}
и используя вот так
fun parse(): MyData? {
return tryOrNull { parse1() }
?: tryOrNull { parse2() }
?: tryOrNull { parse3() }
}
эту информацию я видел здесь
Но я хотел бы знать, есть ли другой способ сделать что-то вроде этого
fun parse(): MyData? {
return parse().tryOrNull() ?: false
}
Я хотел бы создать инфиксную или расширенную функцию, но я не знаю, как управлять вообще. Спасибо!.