检查scala Map中是否存在密钥

时间:2017-11-08 10:04:00

标签: scala scala-collections

我是scala的新手,我有简单的Map[String, String]

示例地图:

val map = Map("a" -> "abc", "b" -> "xyz")

我想编写一个逻辑,如果地图中存在的特定键然后调用值上的encrypt()方法,如果键不存在则返回空字符串。

我能做到这一点的一种方法是:

encrypt(map.getOrElse(MARKETPLACE_ID.toString, ""))

这将失败,因为key不存在,并且将使用空字符串调用encrypt()方法。

请帮助我以最简单的方式解决这个问题。

3 个答案:

答案 0 :(得分:5)

鉴于map.get返回Option,您可以使用其fold方法。

map.get(MARKETPLACE_ID.toString).fold("")(encrypt)

答案 1 :(得分:4)

map.get(MARKETPLACE_ID.toString).map(encrypt).orElse("")

您可以使用OptionOptionmap转到encryptorElse Option {{1} }}

答案 2 :(得分:1)

您只需使用if语句

即可
if(map.keySet.contains(MARKETPLACE_ID.toString)){
  encrypt(map(MARKETPLACE_ID.toString))
}