有没有办法在 Scala ( akin to Clojure ) 中解构函数的输入参数?
所以,而不是
scala> def f(p: (Int, Int)) = p._1
f: (p: (Int, Int))Int
我想要这个(它不起作用):
scala> def f((p1, p2): (Int, Int)) = p1
最佳答案
我猜在 Scala 中你会使用模式匹配来实现相同的目标,例如像这样:
val f: (Int, Int) => Int = { case (p1, p2) => p1 }
或者,等效地:
def f(p: (Int, Int)) = p match { case(p1, p2) => p1 }
如果可以推断类型,则
(Int, Int) => Int
可以删除:List((1, 2), (3, 4)) map { case (p1, p2) => p1 }
关于scala - Scala 中是否可以解构输入参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16326434/