Как обернуть просматриваемый итератор без нарушения правил заимствования [duplicate]

.equals() сравнивает данные в классе (при условии, что функция реализована). == сравнивает местоположения указателя (расположение объекта в памяти).

== возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals() возвращает true, если два объекта содержат одни и те же данные equals() Versus == в Java

Это может вам помочь.

3
задан Shepmaster 5 January 2018 в 20:15
поделиться

1 ответ

Я столкнулся с этой точной проблемой. Проблема в том, что peek() возвращает Option<&T> (необязательный обертывание ссылки, а не значения). Вы сопоставляетесь на Some(x), а не Some(&x), и это приводит к возникновению заимствования, что приводит к проблеме продолжительности жизни.

I написал сообщение в блоге об этом точном выпуск с образцом кода.

1
ответ дан Shepmaster 16 August 2018 в 00:47
поделиться
  • 1
    На самом деле, похоже, мой код работает. Все, что я делаю с копированным итератором, вызывает .peek(). Я не пытаюсь продвигать итератор на этом этапе, поэтому не важно, независимы ли они. И нет, я не просто хочу проверить, вернул ли итератор что-то, это просто упрощенная версия функции. Вы можете увидеть весь файл здесь . – James Hall 14 November 2014 в 13:56
  • 2
    Ах да, извините, почему-то я пропустил, что это только заглядывает. Во всяком случае, я все еще думаю, что дублирование итераторов - это не очень хорошая идея, и, конечно, не идиоматическая. – Vladimir Matveev 14 November 2014 в 15:04
  • 3
    Я думаю ты прав. Я пытаюсь понять, что такое идиоматический путь. Есть идеи? – James Hall 14 November 2014 в 15:14
  • 4
    @JamesHall, я уверен, что мой ответ подходит для этого :) – Vladimir Matveev 14 November 2014 в 15:38
  • 5
    Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – Rohan Khude 11 August 2016 в 04:41
Другие вопросы по тегам:

Похожие вопросы: