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)
Khác với việc sử dụng tiếp theo, hasNext, khi nào tôi nên chọn trình lặp qua chế độ xem hoặc xem qua trình lặp?Sự khác biệt giữa các phương thức lặp và xem là gì?
Xem Iterator # map, nó tạo một trình lặp mới để đánh giá một cách lười biếng chức năng được truyền tới bản đồ cho từng 'tiếp theo'. Vì vậy, nó có vẻ hành động chính xác như một cái nhìn – IttayD
@ Ittay: Đúng, nhưng đó không phải là trong hợp đồng. Iteractor hứa hẹn 'phương thức tiếp theo trả về phần tử tiếp theo và loại bỏ nó khỏi trình lặp.' Trong khi IterableView hứa hẹn là 'không nghiêm ngặt'. – sblundy