kotlin - 在 Kotlin 中定义多嵌套/层次结构图的更简单方法
问题描述
目前,如果我必须定义一个类似的嵌套/层次映射Map<String, Map<String, Map<String, String>>>
,我必须分别定义每个嵌套映射并使用它们来手动构建层次结构。有没有更简单的方法来声明和定义这样的地图?类似于我在 Javascript 中可以做的事情。
PS:Kotlin 新手
Javascript 示例(假设示例)。
var schema = {
"US": {
"WA": {
"Seattle": "Pike Street"
}
},
"IN" : {
"Karnataka": {
"Bangalore" : "MG Road"
}
}
};
科特林:
val WA_CITY_TO_ST_MAP = mapOf(
"Seattle" to "",
"Redmond" to "1st Ave"
)
val KARNATAKA_CITY_TO_ST_MAP = mapOf("Bangalore" to "MG Road")
val US_STATE_TO_CITIES_MAP = mapOf("WA" to WA_CITY_TO_ST_MAP)
val IN_STATES_TO_CITIES_MAP = mapOf("Karnataka" to KARNATAKA_CITY_TO_ST_MAP)
val schema = mapOf("US" to US_STATE_TO_CITIES_MAP, "IN" to IN_STATES_TO_CITIES_MAP)
解决方案
嵌套映射可以内联构建,无需将它们初始化为单独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),您可能需要考虑使用适当的JSON 库来处理您的数据。
推荐阅读
- spring-security - Spring Security 结合了 Container Security 和 JWT Token
- c# - 使用 xUnit 和 NUnit 编写单元测试。VisualStudio 代码覆盖率问题
- java - 从超类类型的 ArrayList 访问子类变量时如何避免强制转换
- spring - 使用 Spring Boot 应用程序运行 docker contianer
- sql - 如何从 SQL 查询中去除 XHTML 标记
- java - 从单一源代码为不同 Java 版本构建 Java 模块和旧 jar
- r - 如何将加入行为与回收结合使用?
- mongodb - AWS GLUE 错误:调用 o75.pyWriteDynamicFrame 时发生错误。无法将 STRING 转换为 IntegerType(值:BsonString{value=''})
- visualization - Google 地球引擎:可视化和导出整个集合
- javascript - 我做了 npm run build 并得到了很多错误