2011-12-06 20 views
10

En "basta con levantar" descanso ejemplos podemos encontrar¿Qué significa -> _ => en Scala/Lift?

case Nil JsonGet _ => Item.inventoryItems: JValue 

pero

case Nil JsonPut Item(item) -> _ => Item.add(item): JValue 

¿Por qué en lugar de -> _ =>_ =>? ¿Y para qué sirve Nil?

Respuesta

13

Este es un tema en la lista de correo recientemente: Help understanding RestHelper serve params.

Básicamente, es una serie de métodos unapply escritos en estilo infijo. Esto significa que es equivalente a escribirlo

case JsonGet(Nil, _) => Item.inventoryItems: JValue 

y

case JsonPut(Nil, Item(item) -> _) => Item.add(item): JValue // or 
case JsonPut(Nil, Tuple2(Item(item), _)) => Item.add(item): JValue 
// using that -> denotes a Tuple 

lo que hace que parezca un poco menos vudú.