首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在arity 1方法调用中需要大括号?

为什么在arity 1方法调用中需要大括号?
EN

Stack Overflow用户
提问于 2017-01-04 06:47:47
回答 0查看 52关注 0票数 3

当我编写像foo.map(case Foobar(x,y) => something)这样的代码时,我得到了一个错误。后来我发现我必须使用大括号来包装匿名函数(case Foobar(x,y) => something)。下面是scala REPL中的一个演示:

代码语言:javascript
复制
scala> val a = List(((1, 2),3), ((4,5),6))
a: List[((Int, Int), Int)] = List(((1,2),3), ((4,5),6))

scala> a.map({case ((a,b),c) => (a,b,c)})
res0: List[(Int, Int, Int)] = List((1,2,3), (4,5,6))

scala> a.map(case ((a,b),c) => (a,b,c))
<console>:1: error: illegal start of simple expression
a.map(case ((a,b),c) => (a,b,c))

请注意,与上面的命令相比,在最后一个命令中删除了大括号。

那么,这种行为的原因是什么呢?为什么scala编译器不能推断没有大括号的匿名函数?

EN

回答

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

https://stackoverflow.com/questions/41453574

复制
相关文章

相似问题

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