Какую версию Scala вы используете?
В Scala 2.8.1.final он будет жаловаться, что последняя case
недоступна.
scala> val willWork = List(1, 3, 23, 90 );
willWork: List[Int] = List(1, 3, 23, 90)
scala> val willNotWork = List( 4, 18, 52 );
willNotWork: List[Int] = List(4, 18, 52)
scala> val empty = List();
empty: List[Nothing] = List()
scala>
scala> for( l <- List(willWork, willNotWork, empty ))
| {
| l match
| {
| case List( _, 3, _, _ ) => println( "Four elements, with the second being '3'." );
| case List( _* ) => println( "Any other list with zero or more elements" );
| case _ => println( "Uh, oh!" );
| }
| }
<console>:15: error: unreachable code
case _ => println( "Uh, oh!" );
^
scala>
И она отлично работает длясоответствовать пустому списку.
scala> val willWork = List(1, 3, 23, 90 );
willWork: List[Int] = List(1, 3, 23, 90)
scala> val willNotWork = List( 4, 18, 52 );
willNotWork: List[Int] = List(4, 18, 52)
scala> val empty = List();
empty: List[Nothing] = List()
scala>
scala> for( l <- List(willWork, willNotWork, empty ))
| {
| l match
| {
| case List( _, 3, _, _ ) => println( "Four elements, with the second being '3'." );
| case List( _* ) => println( "Any other list with zero or more elements" );
| }
| }
Four elements, with the second being '3'.
Any other list with zero or more elements
Any other list with zero or more elements
scala>