Как мне указать newBuilder для набора scala?
Я пытаюсь расширить набор целых чисел в Scala. На основеболее ранний ответ Я решил использовать объект SetProxy. Я сейчас пытаюсь реализоватьnewBuilder
механизм, как описано в главе 25 второго изданияПрограммирование в Scala и у меня проблемы. В частности, я не могу понять, какой параметр указатьSetBuilder
объект. Вот что я попробовал.
package example
import scala.collection.immutable.{HashSet, SetProxy}
import scala.collection.mutable
case class CustomSet(override val self: Set[Int]) extends SetProxy[Int] {
override def newBuilder[Int, CustomSet] =
new mutable.SetBuilder[Int, CustomSet](CustomSet())
}
object CustomSet {
def apply(values: Int*): CustomSet = CustomSet(HashSet(values.toSeq: _*))
}
Это не компилируется. Здесь ошибка.
scala: type mismatch;
found : example.CustomSet
required: CustomSet
override def newBuilder[Int, CustomSet] = new mutable.SetBuilder[Int, CustomSet](CustomSet())
^
Это мистифицирует меня. Я'Мы пробовали различные варианты проблемного значения, но ни один из них не работает. Как мне сделать эту компиляцию?
В дополнение кПрограммирование в Scala I 'просматривал различные сообщения StackOverflow, такие какэтот, но остаются мистифицированными.