Substituir toString em um conjunto Scala

Eu quero criar um conjunto de inteiros chamadoIntSet. IntSet é idêntico aSet[Int] em todos os sentidos, exceto que o seutoString função imprime os elementos como delimitados por vírgula (o mesmo que se você chamoumkString(",")), e tem um construtor que leva umTraversable de inteiros. Qual é a maneira mais simples de fazer isso?

> IntSet((1 to 3)).toString
1,2,3

Eu acho que haveria uma maneira de uma linha para fazer isso, mas eu tenho andado por aí com funções implícitas e estendendoHashSet e eu não consigo descobrir.

O truque é usar um objeto proxy.Eastsun tem a resposta abaixo. Aqui está uma versão ligeiramente diferente que define um nomeIntSet digite e torna imutável.

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(",")
}

questionAnswers(1)

yourAnswerToTheQuestion