7

GenSeq を「デフォルト」のコレクション タイプとして使用するのがベスト プラクティスですか? これは、最も一般的なコレクション インターフェイスのようです。ただし、コード例で広く使用されているとは思いません (より具体的な Seq が代わりに使用されます)。

4

3 に答える 3

10

いいえ。API に表示する必要がある最も一般的なコレクション型は次のとおりです。

  • Seq— 順次収集
  • Set— 数学セット (重複値なし)
  • MapPartialFunction— 連想/連想セット (概念的には離散sと同じ)

前述の区別に中立な唯一の抽象化はTraversable、 とIterableです。(例:とMap[K, V]の両方です。Iterable[(K, V)]Traversable[(K, V)]

実際のパラメーターにとって重要なのは、その要素が何らかの (未指定の) 順序で検査されることだけである場合、Traversableその特性をキャプチャします。

「Like」、「Once」、または「Gen」を含むクラスまたはトレイト名は、Scala コレクションに「最小の驚きの原則」を示すようにする内部魔法の一部です (それらの主なものは、次のような HOF を呼び出すプロパティです)。mapまたはfilter、その HOF が呼び出されたコレクションの具象型と一致する具体的な型を持つ結果を生成します)。

于 2013-01-27T20:43:00.303 に答える