Sự khác biệt giữa Iterator
và Iterable
trong scala là gì?Quan hệ giữa Iterable và Iterator là gì?
Tôi nghĩ rằng Iterable
đại diện cho một tập hợp mà tôi có thể lặp lại và Iterator
là một "con trỏ" tới một trong các mục trong tập hợp có thể lặp lại.
Tuy nhiên, Iterator
có các chức năng như forEach
, map
, foldLeft
. Nó có thể được chuyển đổi thành Iterable
qua toIterable
. Và, ví dụ: scala.io.Source.getLines
trả về Iterator
, không phải Iterable
.
Nhưng tôi không thể làm groupBy
trên Iterator
và tôi có thể làm điều đó trên Iterable
.
Vậy, mối quan hệ giữa hai số này, Iterator
và Iterable
là gì?
cảm ơn, với ví dụ, nó có ý nghĩa hoàn hảo. –
Odersky và Spoon đã viết một mồi tốt về các lớp thu gom Scala: xem http://www.scala-lang.org/docu/files/collections-api/collections.html –
Tôi đã thử nghiệm điều này trong Scala 2.11.7, iterator hoạt động tương tự như iterable, cụ thể là, khi bạn gọi 'take (2)' lần thứ hai, bạn vẫn nhận được 'List (1, 2)'. – qed