Функция, которая обычно принимает тип и возвращает тот же тип
Мне трудно понять, почему компилятор Scala недоволен этим определением функции:
<code>def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } </code>
ЗдесьРЕПЛ выход:
<code>scala> def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } <console>:5: error: type mismatch; found : Iterable[java.lang.String] required: T def trimNonWordCharacters[T <: Iterable[String]](items: T): T = items map { _.replaceAll("\\W", "") } </code>
Цель состоит в том, чтобы передать любую реализацию Iterable и получить тот же тип возврата. Это возможно?