Por que scala não infere o tipo a partir de parâmetros de tipo genérico?
Suponha que esta função
def func[A](data: List[A], mapper: A => String) = {
data.map(item => mapper(item))
}
Por que esse código não compila:
val list = List(1, 2, 3)
func(list, a => a.toString)
Mas este faz:
val list = List(1, 2, 3)
func[Int](list, a => a.toString)
Ou
val list = List(1, 2, 3)
func(list, (a: Int) => a.toString)
Enquantoa
pode ser inferido a partir da lista que éList
doInt
. Por que scala não infere o tipo aqui?
Existe alguma outra maneira?