簡體   English   中英

檢查scala Map中是否存在密鑰

[英]Check if the key exist in scala Map

我是scala的新手,我有簡單的Map[String, String]

示例地圖:

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

我想寫一個邏輯,如果地圖中存在的特定鍵然后調用值上的encrypt()方法,如果鍵不存在則返回空字符串。

我可以這樣做的一種方法是:

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

這將失敗,因為密鑰不存在,並且將使用空字符串調用encrypt()方法。

請幫我以最簡單的方式解決這個問題。

鑒於map.get返回一個Option ,您可以使用其fold方法。

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

您可以使用Option ,get to Optionmap to encrypt ,以及當OptionNone時使用orElse

您只需使用if語句即可

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM