Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Kotlin中定义多嵌套/层次映射的更简单方法_Kotlin - Fatal编程技术网

在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中看到的可空性有关,三元运算符将打破该规则。