我有嵌套的地圖,我想替換該地圖中特定鍵的值。我還想保留地圖的嵌套結構。這是我嘗試替換這些值的嘗試,但它不起作用。
def replaceValuesInMap(input:Map[String,Any],inputkey:String,inputValue:String): Map[String, Any] = {
val output = input.map(x => x match {
case ((key, value:String)) => {
if (key == inputkey)
(key -> inputValue)
else
(key -> value)
}
case ((_, value: Map[String, Any])) => replaceValuesInMap(value, inputkey, inputValue)
})
output.toMap
}
我收到以下錯誤:
Type mismatch:
Required: Map[String,Any]
Found: Map[Nothing,Nothing]
這段代碼有什么問題?
uj5u.com熱心網友回復:
你應該改變這一行
case ((_, value: Map[String, Any])) => replaceValuesInMap(value, inputkey, inputValue)
到
case ((key, value: Map[String @unchecked, _ ])) => key -> replaceValuesInMap(value, inputkey, inputValue)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312783.html
標籤:斯卡拉
上一篇:akka將檔案行流式傳輸到actor路由器并使用單個actor進行寫入。如何處理背壓
下一篇:從akka-stream到fs2的旅程-如何使用http4s在fs2中定義一個akka-streamhttp流,如階段
