パターンマッチングは match 式の中だけじゃなく、変数宣言においても使用できる。
例えばケースクラス Point があったとして
scala> case class Point(x: Int, y: Int) defined class Point
こんなふうに変数宣言すると
scala> val Point(x, y) = Point(10, 20) x: Int = 10 y: Int = 20
変数 x と y に値が束縛される。
scala> x res0: Int = 10 scala> y res1: Int = 20
ちなみに、パターンがマッチしない場合には例外が発生するので、変数宣言でのパターンマッチングは型が合うことが確実な場合にだけ使うように、と資料には書いてある。