Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Нет, изначальная проблема не исправлена. Т.е. скорость нахождения правильного маршрута будет той же, просто теперь не будет переполнения стека.
Условно, ранее было:
suspend fun getRoute(input: String) {
if(pattern.matchedWith(input)) {
return this
}
return this.nest.getRoute(input)
}То есть была рекурсия на асинхронных функциях.
А теперь стало:
suspend fun getRoute(input: String) {
if(pattern.matchedWith(input)) {
return this
}
return this.nestRoutes.filterNotNull { nr ->
nr.getRoute(input)
}.firstOrDefault()
}То есть ввели цикл. Быстрее если и станет, то только немного.
Код выше просто пример переделки. На деле там всё скрыто за абстракциями и т.д.
Spring — эффективный роутинг