том, как это видит borrow checker и не пропускает.
Есть ли обход этому, кроме как использования функции position для получения индекса?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=f6d1734571591f8e135430a329b35293
Это известная особенность текущего борроучекера, он плохо работает при возвращении значения из функции
не думаю, что можно кроме position как-то красиво обойти
Предположу что в первом случае время жизни found привязано к времени жизни итератора, которое сильно меньше 'a. То есть борровинг происходит по схеме self -> iterator -> value from iterator. А во втором случае итератор умирает, и борровинг происходит непосредственно из self.
Обсуждают сегодня