2014-03-01 14 views
3

假设以下Map斯卡拉:如何找回密钥本身时,地图中不包含它

val map = Map("eins" -> "one", "zwei" -> "two", "drei" -> "three") 

正如预期的那样map返回与给定键关联的值:

scala> map("eins") 
res0: String = one 
scala> map("zwei") 
res1: String = two 
... 

,当然如果给定的密钥不存在,它会崩溃:

scala> map("zehn") 
java.util.NoSuchElementException: key not found: zehn 

有没有办法找回密钥本身而不是异常?

map("zehn") -> "zehn" 

谢谢。

+1

你可以做'map.getOrElse(“zehn”,“zehn”)' – 4e6

+0

啊好吧,它的工作原理。谢谢! – j3d

回答

6
val map = Map("eins" -> "one", "zwei" -> "two", "drei" -> "three").withDefault(identity) 
+0

哇......这正是我寻找的优雅解决方案;-) – j3d