我使用以下命令從 Kotlin 中的兩個可變字串串列創建了一個映射:
val mapNames = mutableMapOf(Pair(initList, nameList))
當我嘗試訪問我嘗試過的其中一個鍵的值時
print(mapNames.get("BB")) and print(mapNames["BB"]) 它拋出錯誤
錯誤:型別推斷失敗。型別引數 K 的值應在輸入型別(引數型別、接收器型別或預期型別)中提及。嘗試明確指定它。
這兩個串列都是字串串列,我只是想簡單地回傳與鍵關聯的值。我試圖將其型別明確指定為 String ,但仍然拋出錯誤。我想知道我錯過了什么?
uj5u.com熱心網友回復:
您尚未創建Map<String, String>. 您已經創建了一個Map<List<String>, List<String>>. 映射中唯一的鍵是initList,它對應于值nameList。這顯然不是你想要的。您希望輸入的每個事物initList與輸入的每個事物匹配nameList并在地圖中形成一個條目,這樣您就可以得到Map<String, String>,對嗎?
為此,您應該zip列出以下清單:
val mapNames = initList.zip(nameList).toMap(mutableMapOf())
zip這里創建一個List<Pair<String, String>>, 并將mutableMapOf該串列中的每一對轉換為一個映射條目。然后您可以按預期訪問地圖。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/316008.html
