在“Simply Lift” REST示例中,我们可以找到:
case Nil JsonGet _ => Item.inventoryItems: JValue
但是
case Nil JsonPut Item(item) -> _ => Item.add(item): JValue
为什么使用-> _ =>
而不是_ =>
?那个Nil
有什么作用?
unapply
方法。这意味着它相当于写成:case JsonGet(Nil, _) => Item.inventoryItems: JValue
并且
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
这样看起来就不那么神秘了。