Если вы хотите, чтобы myHashMap["test"]
вернул ["Hello": "World", "ABC": 3]
, это должна быть карта.Способ ввода может быть:
mapOf("test" to mapOf("Hello" to "World", "ABC" to 3))
Это также может быть причиной ошибки несоответствия типов.При определении, как указано выше, результат будет:
var testString = "__ ${myHashMap["test"]!!.count()} __" // -> 2
hashMapOf("test" to arrayOf<HashMap<String, Any>>())
приведет к чему-то вроде:
{
"test": [
{ "Hello": "World" },
{ "ABC": 3 }
]
}
В то время как mapOf("test" to mapOf("Hello" to "World", "ABC" to 3))
будет результатпримерно так:
{
"test": {
"Hello": "World",
"ABC": 3
}
}
В качестве фона: "Hello" to "World"
- это запись карты.Вы можете добавить несколько в mapOf
, которые затем объединяются до полного мая.Ваш код будет выглядеть так, как если бы вы создали массив карт, каждая из которых имеет только одну запись.
ЗАПИШИТЕ свое обновление: если вы хотите иметь карту на карте, вы также можете написать ее так:
myHashMap ["test"] = mapOf (от "Hello" до "World", от "ABC" до 3)
Если вы хотите добавить ключи позже, вам также следует использовать mutableMapOf
вместо.В противном случае myHashMap["newTests"] = ...
не сработает.