首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala - infer类型参数

Scala - infer类型参数
EN

Stack Overflow用户
提问于 2012-12-14 04:38:21
回答 2查看 1.7K关注 0票数 4

为什么这段代码会产生错误

代码语言:javascript
复制
def test[A](a: List[A], f: A => A) = a.map(f)

println(test(List(1,2,3), _*2))

error: missing parameter type for expanded function ((x$2) => x$2.$times(2))

难道Scala不应该知道A是Int吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-14 04:42:50

您需要第二个参数列表才能正常工作。我不确定这是如何在规范中定义的,但我以前见过这种情况。

代码语言:javascript
复制
scala> def test[A](a: List[A])(f: A => A) = a.map(f)
test: [A](a: List[A])(f: (A) => A)List[A]

scala> test(List(1))(_+1)
res1: List[Int] = List(2)
票数 7
EN

Stack Overflow用户

发布于 2014-06-20 04:09:39

这是一个例子,如何在不做任何改变的情况下让它在你的情况下工作。

代码语言:javascript
复制
scala> println(test(List(1,2,3), (i: Int) => i * 2 ))

Scala的类型推断是有限的,有时你应该提供帮助!

这是一篇Making the most of Scala's (extremely limited) type inference 文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13868085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档