Допустим, у меня есть некоторый код, который использует List
def processList(input: List[Int]): List[Int]
Я хочу заменить список другими типами коллекций, такими как Vector.
Есть ли способ определить конструктор типа такчто я могу написать что-то вроде
type SomeCollection[_] = List[_]
def processList(input: SomeCollection[Int]): SomeCollection[Int]
Теперь я написал processList в терминах SomeCollection. Чтобы изменить SomeCollection на Vector, я просто изменяю псевдоним типа, и везде в кодовой базе, где я использую SomeCollection, я теперь использую Vector. Вот так:
type SomeCollection[_] = Vector[_]
def processList(input: SomeCollection[Int]): SomeCollection[Int]
Таким образом, мне нужно менять кодовую базу только в одном месте, а не везде.
Я не хочу писать
type SomeIntCollection = List[Int]
потому что я подключил коллекцию к типу Int.
Есть ли способ?