Как стать автором
Обновить

Комментарии 2

Я правильно понимаю (судя по состоянию issue), что они всё-таки пофиксили эту проблему?

Нет, изначальная проблема не исправлена. Т.е. скорость нахождения правильного маршрута будет той же, просто теперь не будет переполнения стека.


Условно, ранее было:


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()
}

То есть ввели цикл. Быстрее если и станет, то только немного.


Код выше просто пример переделки. На деле там всё скрыто за абстракциями и т.д.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории