Haskell 中可以这样写:
x :: (Int,Int) -> Int
x (p,s) = p
在Scala中,您可以编写以下代码:
def x(a: (Int, Int)) = a._1
或:
def x(a: (Int, Int)) = a match {
case (p, s) => p
}
为什么不使用类似以下的东西:
def x(_: (p: Int, s: Int)) = p
或者def x(foo: (p @ Int, s @ Int)) = p
?
的翻译是:?
case ... of
语句。但从用户的角度来看,这只是一个实现细节。 - Landei