Я наткнулся на довольно интересное поведение в 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