2014-03-25 59 views
5

目前我使用下面的代码片段:我怎么能转换斯卡拉地图的部分功能

private val aMap = Map(
    "J" -> Journey, 
    "T" -> Training 
) 

def partialFunction = { 
    case x if aMap isDefinedAt x => aMap(x) 
} 

在我看来,那自然地图应该定义的部分功能。 Scala是否有任何标准/更简洁明确的方式将地图转换为部分函数?也许某种隐式转换?

回答

12

Scala的Map实际上一个PartialFunction;你可以直接使用它。不需要转换,隐含或显式。

例如:

val pf: PartialFunction[Int, String] = Map(1 -> "one")