2011-12-06 17 views
10

W "podnieś" odpoczynek przykłady możemy znaleźćCo oznacza -> _ => w Scala/Lift?

case Nil JsonGet _ => Item.inventoryItems: JValue 

ale

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

Dlaczego -> _ => zamiast _ =>? I do czego to jest Nil?

Odpowiedz

13

To był temat na liście mailingowej: Help understanding RestHelper serve params.

Zasadniczo jest to seria na unapply metod napisanych w stylu infiks. Oznacza to, że jest odpowiednikiem pisania

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

i

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 

co sprawia, że ​​wydaje się nieco mniej voodoo.