Pattern Matching `@` Symbol

Viewed 20809

Given this Person case class:

scala> case class Person(name: String, age: Int) {}
defined class Person

... and this instance

scala> val b = Person("Kevin", 100)
b: Person = Person(Kevin,100)

Is there a reason to prefer this code (with @)

scala> b match {
     |    case p @ Person(_, age) => println("age")
     |    case _ => println("none")
     | }
age

... over the following?

scala> b match {
     |    case Person(_, age) => println("age")
     |    case _ => println("none")
     | }
age

Perhaps I'm missing the meaning/power of @?

2 Answers
Related