检查密钥是否存在于scala Map中

Jhu*_*ath 2 scala scala-collections

我是Scala的新手,我很简单Map[String, String]

示例图:

val map = Map("a" -> "abc", "b" -> "xyz")
Run Code Online (Sandbox Code Playgroud)

我想编写一个逻辑,如果映射中存在特定密钥,则对该值调用crypto()方法,如果该密钥不存在,则返回空字符串。

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

encrypt(map.getOrElse(MARKETPLACE_ID.toString, ""))
Run Code Online (Sandbox Code Playgroud)

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

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

Sle*_*idi 5

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

map.get(MARKETPLACE_ID.toString).fold("")(encrypt)
Run Code Online (Sandbox Code Playgroud)