在Kotlin中定义多嵌套/层次映射的更简单方法
目前,如果我必须定义一个嵌套/层次映射,比如在Kotlin中定义多嵌套/层次映射的更简单方法,kotlin,Kotlin,目前,如果我必须定义一个嵌套/层次映射,比如Map,我必须分别定义每个嵌套映射,并使用它们手动构建层次结构。有没有更简单的方法来声明和定义这样的映射?类似于我在Javascript中可以做的事情 附言:科特林新手 Javascript示例(假设示例) var模式={ “美国”:{ “瓦”:{ “西雅图”:“派克街” } }, “在”:{ “卡纳塔克邦”:{ “班加罗尔”:“MG路” } } }; 科特林: val WA_CITY_TO_ST_MAP=mapOf( “西雅图”至“, “雷德蒙德”
Map
,我必须分别定义每个嵌套映射,并使用它们手动构建层次结构。有没有更简单的方法来声明和定义这样的映射?类似于我在Javascript中可以做的事情
附言:科特林新手
Javascript示例(假设示例)
var模式={
“美国”:{
“瓦”:{
“西雅图”:“派克街”
}
},
“在”:{
“卡纳塔克邦”:{
“班加罗尔”:“MG路”
}
}
};
科特林:
val WA_CITY_TO_ST_MAP=mapOf(
“西雅图”至“,
“雷德蒙德”至“第一大道”
)
卡纳塔克邦城市至圣地图=地图(班加罗尔至MG路)
val US_STATE_TO_CITIES_MAP=mapOf(“WA”TO WA_CITY_TO_ST_MAP)
val IN_STATES_TO_CITIES_MAP=mapOf(“卡纳塔克邦”TO卡纳塔克邦_CITY_TO_ST_MAP)
val schema=mapOf(“美国”到美国\州\到城市\地图,“IN”到美国\到城市\地图)
嵌套映射可以内联构建,无需将它们初始化为单独的val
s:
val schema = mapOf(
"US" to mapOf(
"WA" to mapOf(
"Seattle" to "",
"Redmond" to "1st Ave"
)
),
"IN" to mapOf(
"Karnataka" to mapOf(
"Bangalore" to "MG Road"
)
)
)
如果您的结构并不总是具有相同的嵌套级别(很像JSON),那么您可能希望使用适当的方法来处理数据。有没有任何示例说明如何在Javascript中定义数据?您尝试了什么?添加了我尝试实现的内容。我也不知道为什么kotlin选择了“to”关键字,因为“:”本可以做同样的工作。不是关键词,不是语言的一部分;它只是标准库中定义的普通扩展函数。(无法调用函数
:
,因此需要在语言本身中定义该函数。)语言设计避免在不同的域中使用符号<代码>:已用于类型的域。他们没有添加三元运算符的部分原因是,?
与在Kotlin中看到的可空性有关,三元运算符将打破该规则。