检查键是否存在于scala Map中

Check if the key exist in scala Map

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

示例地图:

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

我想编写一个逻辑,如果映射中存在特定键,则对值调用 encrypt() 方法,如果键不存在,则 return 空字符串。

我可以这样做的一种方法是:

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

如果密钥不存在,这将失败,并且将使用空字符串调用 encrypt() 方法。

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

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

你可以用 Option 做到这一点,达到 Optionmap 达到 encryptorElseOptionNone.

鉴于 map.get returns 和 Option,您可以使用它的 fold 方法。

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

您可以简单地使用 if 语句作为

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