Неожиданный синтаксис сопоставления шаблонов Scala

У меня был список кортежей Scala вроде следующего:

val l = List((1,2),(2,3),(3,4))

, и я хотел отобразить его в списке Int, где каждый элемент представляет собой сумму Ints в соответствующем кортеже. Я также не хотел использовать нотацию x._1, поэтому решил проблему с сопоставлением с образцом, подобным этому

def addTuple(t: (Int, Int)) : Int = t match { 
    case (first, second) => first + second 
}
var r = l map addTuple

. Так я получил список r: List [Int] = List (3, 5, 7) как и ожидалось. В этот момент почти случайно я обнаружил, что могу достичь того же результата с помощью такой сокращенной формы, как следующая:

val r = l map {case(first, second) => first + second}

Я не могу найти никаких ссылок на этот синтаксис в имеющейся у меня документации. Это нормально? Я упустил что-то тривиальное?

8
задан Daniel C. Sobral 16 September 2010 в 23:55
поделиться