在 Scala 中方便地编写元组函数 [英] Writing functions of tuples conveniently in Scala

查看:36
本文介绍了在 Scala 中方便地编写元组函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Map 上的相当多的函数以键值元组上的函数作为参数.例如.def foreach(f: ((A, B)) ⇒ 单位): 单位.所以我寻找一种简短的方法来为 foreach 编写一个参数:

Quite a few functions on Map take a function on a key-value tuple as the argument. E.g. def foreach(f: ((A, B)) ⇒ Unit): Unit. So I looked for a short way to write an argument to foreach:

> val map = Map(1 -> 2, 3 -> 4)

map: scala.collection.immutable.Map[Int,Int] = Map(1 -> 2, 3 -> 4)

> map.foreach((k, v) => println(k))

error: wrong number of parameters; expected = 1
       map.foreach((k, v) => println(k))
                          ^

> map.foreach({(k, v) => println(k)})

error: wrong number of parameters; expected = 1
       map.foreach({(k, v) => println(k)})
                           ^

> map.foreach(case (k, v) => println(k))

error: illegal start of simple expression
       map.foreach(case (k, v) => println(k))
                   ^

我能做到

> map.foreach(_ match {case (k, v) => println(k)})

1
3

还有更好的选择吗?

推荐答案

您与 map.foreach(case (k, v) => println(k)) 非常接近.要在匿名函数中使用 case,请用大括号将其括起来.

You were very close with map.foreach(case (k, v) => println(k)). To use case in an anonymous function, surround it by curly brackets.

map foreach { case (k, v) => println(k) }

这篇关于在 Scala 中方便地编写元组函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆