如何为传递给scalaMap(高阶)函数的函数指定参数?

qlckcl4x  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(447)

我有一个函数f,它有两个参数-a:int和b:int f (a:Int, b:Int): Int 我希望在2元组的列表上调用map,这样对于列表中的每个元组(a,b),我希望将其Map到f(a,b)。我该怎么做?谢谢

hpcdzsge

hpcdzsge1#

有两种方法可以做到这一点。
首先,也许对读者来说最清楚的是,您可以在 map :

val tuples: List[(Int, Int)] = ???  // code to generate the list
tuples.map {
  case (a, b) => f(a, b)
}

第二,可以将函数转换为一个以元组作为输入的函数 .tupled . 用定义的方法 def 必须先转化为函数:

val tupledF = (f _).tupled
val tuples: List[(Int, Int)] = ??? // code to generate the list
tuples.map(tupledF)
c2e8gylq

c2e8gylq2#

你可以这样做 l.map { case (a,b) => f(a,b) } . 或者一个聪明的方法: l.map((f _).tupled)

相关问题