Scala:函数/方法应用程序和元组

时间:2011-02-23 21:25:56

标签: scala scala-2.8

我偶然发现了Scala中一个非常有趣的行为。

scala> def foo(t: (Int, Int, Int)): Int = t._1 
foo: (t: (Int, Int, Int))Int

scala> foo(1,2,3)
res23: Int = 1

scala> foo((1,2,3))
res24: Int = 1

这反过来也是如此:

scala> Some(1,2,3,4,5)     
res31: Some[(Int, Int, Int, Int, Int)] = Some((1,2,3,4,5))

虽然这种糖非常有用但我没有找到任何关于此的文件。所以我的问题基本上是:Scala语言规范中记录了哪些内容,以及其他含义(如果有的话)。

此致 raichoo

1 个答案:

答案 0 :(得分:2)

众所周知,自动化。我lodged a bug反对语言规范,这个问题没有提及。

以下是compiler source code.

的相关部分