【发布时间】:2016-12-13 19:37:31
【问题描述】:
我尝试实现一个类似的功能:
def myMap[A,B](a: Seq[A], f: A => B): Seq[B] = a.map(f)
// then I want to call it like that:
myMap(List(1,13,42), _*2)
但是对myMap 的调用无法编译,因为编译器无法推断类型参数A 和B。错误:missing parameter type
基本上,我希望它会推断A(Int)给定参数List(1,13,42),然后从给定f = _*2知道A推断B。但事实并非如此。
我可以做些什么来避免编写类型参数?
我发现的最好的是:
def myMap[A,B](a: Seq[A], f: A => B): Seq[B] = a.map(f)
myMap(List(1,13,42), (a: Int) => a*2)
即我在f 参数中明确给出A
【问题讨论】:
标签: scala type-inference generic-type-argument