title: Pattern Matching `@` Symbol
body: <p>Given this <code>Person</code> case class:</p>
  
  <pre><code>scala&gt; case class Person(name: String, age: Int) {}
  defined class Person
  </code></pre>
  
  <p>... and this instance</p>
  
  <pre><code>scala&gt; val b = Person("Kevin", 100)
  b: Person = Person(Kevin,100)
  </code></pre>
  
  <p>Is there a reason to prefer this code (with <code>@</code>)</p>
  
  <pre><code>scala&gt; b match {
       |    case p @ Person(_, age) =&gt; println("age")
       |    case _ =&gt; println("none")
       | }
  age
  </code></pre>
  
  <p>... over the following?</p>
  
  <pre><code>scala&gt; b match {
       |    case Person(_, age) =&gt; println("age")
       |    case _ =&gt; println("none")
       | }
  age
  </code></pre>
  
  <p>Perhaps I'm missing the meaning/power of <code>@</code>?</p>