2011-12-06 8 views
10

In esempi "basta sollevare" riposo possiamo trovareCosa significa -> _ => in Scala/Lift?

case Nil JsonGet _ => Item.inventoryItems: JValue 

ma

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

Perché -> _ => invece di _ =>? E a cosa serve questo Nil?

risposta

13

Questo era un argomento della mailing list di recente: Help understanding RestHelper serve params.

Fondamentalmente, è una serie sui metodi unapply scritti in stile infisso. Ciò significa che è equivalente a scriverlo

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

e

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 

che la fa apparire un po 'meno voodoo.