2011-02-23 38 views
5

我偶然發現了Scala中一個非常有趣的行爲。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

相關的部分是不是'(((1,2,3)))'只是周圍的括號括號圍繞一個元組? – delnan 2011-02-23 21:31:02

+0

同意,忘記最後2個foos :)更新:刪除它們 – raichoo 2011-02-23 21:33:55

+2

看看由retromin提供的答案,從去年5月的2850902這個問題提供了一些細節。還討論了其他後果。 – 2011-02-23 22:01:02

回答