.equals()
сравнивает данные в классе (при условии, что функция реализована). ==
сравнивает местоположения указателя (расположение объекта в памяти).
==
возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals()
возвращает true, если два объекта содержат одни и те же данные equals()
Versus ==
в Java
Это может вам помочь.
Я столкнулся с этой точной проблемой. Проблема в том, что peek()
возвращает Option<&T>
(необязательный обертывание ссылки, а не значения). Вы сопоставляетесь на Some(x)
, а не Some(&x)
, и это приводит к возникновению заимствования, что приводит к проблеме продолжительности жизни.
I написал сообщение в блоге об этом точном выпуск с образцом кода.
.peek()
. Я не пытаюсь продвигать итератор на этом этапе, поэтому не важно, независимы ли они. И нет, я не просто хочу проверить, вернул ли итератор что-то, это просто упрощенная версия функции. Вы можете увидеть весь файл здесь . – James Hall 14 November 2014 в 13:56