Я выполняю некоторые упражнения, чтобы привыкнуть к системе типов Scala. У меня есть вспомогательная функция для запуска модульных тестов, где я указываю вход и ожидаемый выход функции. В этом случае функция, которую я тестирую, возвращает первые n элементов списка:
val inputs: List[TestCase[(List[Any], Int), List[Any]]] = List(
TestCase(
input = (List('a', 't', 'o'), 2),
output = List('a', 't')
),
TestCase(
input = (List("Vegetable", "Fruit"), 4),
output = List("Vegetable", "Fruit")
),
TestCase(
input = (List(3.14, 6.22, 9.5), -7),
output = Nil
)
)
Мой вопрос: возможно ли указать параметр типа для этого input val. Этот Список [Любой] в порядке, но я хочу как-то указать, что входной список имеет элементы того же типа, что и выходной Список. Примерно так (не работает кстати):
val inputs[SameType]: List[TestCase[(List[SameType], Int), List[SameType]]] = ...
Буду признателен за любые предложения. Может быть, параметры типа не предназначены для использования с vals?
Если вам интересно, почему я не просто утверждаю результаты: это потому, что у меня есть несколько реализаций одной и той же функции, и я не хочу повторить контрольные примеры для каждой реализации.