scala> //////////////////////////////////////////////////////////////// scala> // All Reference Classes in Scala extends AnyRef scala> //////////////////////////////////////////////////////////////// scala> def patternFn(x: AnyRef): Unit = x match { //#315 | case List(1, _) => println("This is ; List(1, _)") | | // Variable Binding : @ is used to bind a Variable #320 | case x @ List(2, _) => println("This is. -> " + x) | | // _* represents : Can be any no of elements | case List(3, _*) => println("This is .. -> " + x) | } patternFn: (x: AnyRef)Unit scala> scala> patternFn(List(1, 2)) This is ; List(1, _) scala> patternFn(List(2, 3)) This is. -> List(2, 3) scala> patternFn(List(2, 3, 4, 5)) scala.MatchError: List(2, 3, 4, 5) (of class scala.collection.immutable.$colon$colon) at patternFn(<console>:23) ... 48 elided scala> patternFn(List(3, 4, 5, 6, 7)) This is .. -> List(3, 4, 5, 6, 7)