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 } 不起作用. 解决方法
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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |