Iterator

O trait Iterator suporta a iteração sobre valores em uma coleção. Ele requer um método next e fornece muitos métodos. Muitos tipos da biblioteca padrão implementam Iterator, e você também pode implementá-lo:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 5 minutes.
  • O trait Iterator implementa muitas operações comuns de programação funcional sobre coleções (por exemplo, map, filter, reduce, etc). Este é o trait onde você pode encontrar toda a documentação sobre eles. Em Rust, essas funções devem produzir o código tão eficiente quanto as implementações imperativas equivalentes.

  • IntoIterator é o trait que faz os laços for funcionarem. Ele é implementado por tipos de coleção como Vec<T> e referências a eles como &Vec<T> e &[T]. Intervalos (ranges) também o implementam. É por isso que você pode iterar sobre um vetor com for i in some_vec { .. }, mas some_vec.next() não existe.