【问题标题】:Check if the key exist in scala Map检查密钥是否存在于scala Map中
【发布时间】:2018-04-20 23:05:47
【问题描述】:

我对 scala 很陌生,我有简单的Map[String, String]

示例地图:

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

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

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

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

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

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

【问题讨论】:

    标签: scala scala-collections


    【解决方案1】:
    map.get(MARKETPLACE_ID.toString).map(encrypt).orElse("")
    

    您可以使用Option 进行操作,到达Optionmapencrypt,当OptionNone 时,orElse

    【讨论】:

    • 其实,你应该使用getOrElse而不是orElseorElse)作为后备Option[String]getOrElse作为后备String)。
    【解决方案2】:

    鉴于map.get 返回一个Option,您可以使用它的fold 方法。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-06-05
        • 2020-08-19
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多