反復可能 (Iterable トレイトはコレクション階層の上から2番目に位置する。このトレイトの全メソッドは、コレクション内の要素を1つずつ返す抽象メソッド iterator に基づいている。Iterable では、Traversable トレイトの foreach メソッドも iteratorに基づいて実装されている。以下が実際の実装だ: def foreach[U](f: Elem => U): Unit = { val it = iterator while (it.hasNext) f(it.next()) } 多くの Iterable のサブクラスは、より効率的な実装を提供するため、上の foreach の標準実装をオーバーライドしている。 foreach は Traversable の全ての演算の基となっているため、効率的であることが重要なのだ。 Iterable にはイテレー