加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 在map,flatmap,…部分函数中使用元组

发布时间:2020-12-16 09:06:48 所属栏目:安全 来源:网络整理
导读:如果我做: val l = Seq(("un",""),("deux","hehe"),("trois","lol"))l map { t = t._1 + t._2 } 没关系. 如果我做: val l = Seq(("un","lol"))l map { case (b,n) = b + n } 也没关系. 但如果我这样做: val l = Seq(("un","lol"))l map { (b,n) = b + n }
如果我做:

val l = Seq(("un",""),("deux","hehe"),("trois","lol"))
l map { t => t._1 + t._2 }

没关系.

如果我做:

val l = Seq(("un","lol"))
l map { case (b,n) => b + n }

也没关系.

但如果我这样做:

val l = Seq(("un","lol"))
l map { (b,n) => b + n }

不起作用.
为什么我应该使用“case”关键字来使用命名元组?

解决方法

2.11的错误消息更具说明性:

scala> l map { (b,n) => b + n }
<console>:9: error: missing parameter type
Note: The expected type requires a one-argument function accepting a 2-Tuple.
      Consider a pattern matching anonymous function,`{ case (b,n) =>  ... }`
              l map { (b,n) => b + n }
                       ^
<console>:9: error: missing parameter type
              l map { (b,n) => b + n }
                          ^

对于申请,您将获得“自动修改”:

scala> def f(p: (Int,Int)) = p._1 + p._2
f: (p: (Int,Int))Int

scala> f(1,2)
res0: Int = 3

你提供了两个args而不是一个args.

但是你没有得到自动解决.

人们有always wanted it to work that way.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读