В качестве упражнения я хотел бы расширить коллекцию Scala Array до моего собственного OneBasedArray (делает то, что вы ожидаете, индексирование начинается с 1 ). Поскольку это неизменяемая коллекция, я бы хотел, чтобы она возвращала правильный тип при вызове фильтра / карты и т. Д.
Я прочитал ресурсы здесь , здесь и здесь , но я изо всех сил пытаюсь понять, как преобразовать это в массивы (или коллекции, отличные от тех, что в примерах). На правильном ли я пути с такой структурой?
class OneBasedArray[T]
extends Array[T]
with GenericTraversableTemplate[T, OneBasedArray]
with ArrayLike[T, OneBasedArray]
Есть ли какие-нибудь дополнительные ресурсы, которые помогут объяснить расширение коллекций?