scala - 在Scala中方便地编写元组函数

标签 scala scala-2.8

Map上有相当多的功能将键值元组上的函数作为参数。例如。 def foreach(f: ((A, B)) ⇒ Unit): Unit 。所以我寻找一种简短的方法来编写 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,请用大括号将其括起来。

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

关于scala - 在Scala中方便地编写元组函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2957254/

相关文章:

scala - PartialFunction 设计效率低下吗?

scala - 什么是 Scala 中的盒装错误?

scala - 手动排除 sbt 中的一些测试类

list - 使用 Scala 中的函数生成的值生成列表

Python+Tornado vs Scala+Lift?

Scala Remote Actors - 陷阱

scala - Scala 中是否有维护的不可变优先级队列?

scala - 玩框架 2.4、Guice 和 securesocial

scala - 如何在 Scala 中定义自定义集合接口(interface)而不定义实现?

scala 移除(就地)ListBuffer 中满足条件的所有元素