Вопрос 1 -ли Traversable черта или класс
В документации Scala, я обнаружил, что Traversable это черта с абстрактным методом foreach
:
http://www.scala-lang.org/docu/files/collections-api/collections.html
Тогда, почему бы Я создаю объект типа Traversable?
val t = Traversable(1,2,3)
t.foreach(println _) //where is Scala picking foreach a definition from?
Вопрос 2 - как это Traversable отличается от других классов, таких как список или массив? Приходит ли он под Seq, Set или категории карт (я думал, что другая коллекция наследует от проходимой)
Вопрос 3 - я мог бы сделать то же самое для Iterable
признака, даже если согласно документации, Iterable имеет абстрактный метод, iterator
:
val v1 = Iterator(1,2,3)
v1.foreach(println _)
Что мне не хватает?
Спасибо. Есть ли причина создания сопутствующего объекта? Я не вижу сценарий, где я буду использовать объект Traversable или Iterable. –
Сопутствующий объект обычно содержит некоторых создателей для класса. Сопутствующий объект всегда определяется в том же файле, что и класс, и имеет то же имя, что и класс. Вы можете увидеть документы API для сопутствующего объекта «Traversable» здесь: http://www.scala-lang.org/api/2.12.0/scala/collection/Traversable$.html – marstran