Доступ к значениям на карте в Котлине

Мне трудно получить доступ к значениям в этом словаре / карте, которые я построил внутри этого объекта животных:

object Animals {
var animalInfo = mutableMapOf<String,Any>()
init {
    animalInfo["Animal"] = mutableListOf("description" to "Large Mammal", "name" to "Elephant", "highlights" to arrayListOf("Long Trunk", "Flappy Ears", "Ivory Tusks"))
    }
}    

Swift был моим первым языком, я пытался получить доступ к таким значениям, но без использования дополнительной привязки:

 val dataDict = Animals.animalInfo
        val animal = dataDict["Animal"]
        println(animal["description"])
        println(animal["name"])
        println(animal["highLights"])

Во всех строках println есть неразрешенная ошибка ссылки. Как мне правильно получить доступ к значениям в mutableMapOf ()?

По-прежнему не могу скомпилировать. animalInfo и moduleInfo.

ice1000 01.05.2018 19:38
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
6 132
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Измените эту строку:

var animalInfo = mutableMapOf<String,Any>()

в

var animalInfo = mutableMapOf<String,MutableMap<String, out Any>>()

и изменить

val module = dataDict["Animal"]

в

val module = dataDict["Animal"]!!

и изменение mutableListOf на mutableMapOf должно решить эту проблему (всего 3 изменения).

Подожди, я тоже это нашел, дай мне минутку

ice1000 01.05.2018 19:34

Другие вопросы по теме