質問1ですScalaのドキュメントではTraversableのは、形質またはクラス
、私はTraversableの抽象メソッドforeach
と形質であることがわかりましたTraversable型のオブジェクトをインスタンス化しますか?
val t = Traversable(1,2,3)
t.foreach(println _) //where is Scala picking foreach a definition from?
質問2 - リストや配列などの他のクラスとは別のTraversableのですか?それは、配列、セットまたはマップカテゴリの下に来るん(私は他のコレクションがTraversableの継承と思った)
質問3 - 私はドキュメントごとに、反復処理可能で抽象メソッドを持っているにもかかわらずIterable
形質について、正確に同じことを行うことができ、iterator
:
val v1 = Iterator(1,2,3)
v1.foreach(println _)
何が欠けていますか?
ありがとうございました。コンパニオンオブジェクトを作成する理由はありますか?私はTraversableまたはIterableのオブジェクトを使用するシナリオを見ることができません。 –
コンパニオンオブジェクトには、通常、クラスのクリエータが含まれています。コンパニオンオブジェクトは常にクラスと同じファイルに定義され、クラスと同じ名前を持ちます。 'Traversable'のコンパニオンオブジェクト用のAPIドキュメントは、http://www.scala-lang.org/api/2.12.0/scala/collection/Traversable$.htmlにあります。 – marstran