scala> (1 to 10).iterator.map{_ * 2}.toList
res1: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
scala> (1 to 10).view.map{_ * 2}.force
res2: Seq[Int] = Vector(2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
Inne niż użycie next, hasNext, kiedy powinienem wybrać iterator na widok lub przeglądać iterator?Jaka jest różnica między metodami iteratora i widoku?
Zobacz Iterator # map, tworzy nowy iterator, który leniwie ocenia funkcję przekazaną do mapy dla każdego "następnego". Wygląda więc na to, że wygląda dokładnie tak, jak w widoku – IttayD
@Ittay: True, ale tego nie ma w umowie. Iteractor obiecuje "następną metodę, która zwraca następny element i odrzuca go z iteratora". Podczas gdy IterableView obiecuje być "nie surowym". – sblundy