簡體   English   中英

如何訪問嵌套在另一個 map 中的 map 中的值(在 kotlin 中)

[英]how to access a value in a map that is nested inside another map (in kotlin)

在下面的示例中,一個名為 someCompany 的 map 在其值之一中有一個名為 somePerson 的 map

val somePerson = mapOf("name" to "Tim", "age" to "35")

val someCompany = mapOf("boss" to somePerson, "sector" to "accounting")

我認為在嵌套的 map 中獲取一個值會很簡單。我有點驚訝這個天真的解決方案不起作用:


val a = someCompany["boss"]

val myOutput = a["name"] //I expected myOutput to be 'Tim', but this doesn't work 

如何在嵌套的 map 中提取值?

你必須像這樣聲明你的地圖:

val somePerson = mapOf("name" to "Tim", "age" to "35")
val otherPerson = mapOf("name" to "Tom", "age" to "25")

val someCompany = mapOf("boss" to somePerson, "sector" to otherPerson)

your sameCompany map 需要有相同類型的數據才能正常工作

您可以使用get()方法訪問此personname

val person = someCompany["boss"]
val name = person?.get("name")

PS:如果你真的想用不同類型的數據創建你的 map ,你可以將檢索到的值轉換為你喜歡的類型(但我不推薦它,因為它不安全):

val person = someCompany["boss"] as? Map<String, String>
val name = person?.get("name")

暫無
暫無

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

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