という整数のセットを作成したいと思いますIntSet
。IntSet
はSet[Int]
、toString
関数が要素をコンマ区切りで出力すること ( を呼び出した場合と同じmkString(",")
) と、Traversable
整数の これを行う最も簡単な方法は何ですか?
> IntSet((1 to 3)).toString
1,2,3
これを行うには1行の方法があると思いますが、暗黙の関数と拡張をいじっていて、それをHashSet
理解できません。
秘訣は、プロキシ オブジェクトを使用することです。Eastsunは以下の答えを持っています. IntSet
名前付きの型を定義し、それを不変にする、わずかに異なるバージョンを次に示します。
import collection.immutable.{HashSet, SetProxy}
class IntSet(values: Traversable[Int]) extends SetProxy[Int] {
override val self: Set[Int] = HashSet(values.toSeq:_*)
override def toString() = mkString(",")
}