Dlaczego scala nie wnioskuje o typie z ogólnych parametrów typu?
Załóżmy, że ta funkcja
def func[A](data: List[A], mapper: A => String) = {
data.map(item => mapper(item))
}
Dlaczego ten kod się nie kompiluje:
val list = List(1, 2, 3)
func(list, a => a.toString)
Ale to robi:
val list = List(1, 2, 3)
func[Int](list, a => a.toString)
Lub
val list = List(1, 2, 3)
func(list, (a: Int) => a.toString)
Podczasa
typ można wywnioskować z listy, która jestList
zInt
. Dlaczego scala nie wnioskuje tutaj o typie?
Czy jest jakiś inny sposób?