我是scala的新手,我有简单的Map[String, String]
。
示例地图:
val map = Map("a" -> "abc", "b" -> "xyz")
我想编写一个逻辑,如果地图中存在的特定键然后调用值上的encrypt()方法,如果键不存在则返回空字符串。
我能做到这一点的一种方法是:
encrypt(map.getOrElse(MARKETPLACE_ID.toString, ""))
这将失败,因为key不存在,并且将使用空字符串调用encrypt()方法。
请帮助我以最简单的方式解决这个问题。
答案 0 :(得分:5)
鉴于map.get
返回Option
,您可以使用其fold
方法。
map.get(MARKETPLACE_ID.toString).fold("")(encrypt)
答案 1 :(得分:4)
map.get(MARKETPLACE_ID.toString).map(encrypt).orElse("")
您可以使用Option
,Option
和map
转到encrypt
,orElse
Option
{{1} }}
答案 2 :(得分:1)
您只需使用if
语句
if(map.keySet.contains(MARKETPLACE_ID.toString)){
encrypt(map(MARKETPLACE_ID.toString))
}