Как я могу использовать составной ключ в Kotlin?

В Python у меня могут быть сложные словарные ключи, например:

d = {} d[(1, 2)] = 3 print d[(1, 2)] # prints 3 

Как я могу объявить и заполнить такую ​​карту в Котлине?

Изменить: я попытался объявить такую ​​Карту, но я не знаю, как ее заполнить:

 val my_map = HashMap<Pair<Int, Int>, Int>() 

    Это просто, сначала создайте словарь, а затем вставьте ключ и значения:

     val (a, b):Pair<Int, String> = Pair(1, "x") val map: HashMap<Pair<Int, String>, Int> = hashMapOf((a, b) to 1) map[Pair(2, "y")] = 3 

    и так далее 🙂

    В Kotlin, в отличие от Python, нет типа данных кортежа. Для двухкортежей есть класс Pair. Для большей ясности вы должны использовать классы данных.

     val map: HashMap<Pair<Int, Int>, Int> = hashMapOf(Pair(1, 2) to 3) val nullable: Int? = map[Pair(1, 2)] val notNullable = map.getValue(Pair(1, 2)) 
    Intereting Posts
    String :: toByteArray () не компилируется в Kotlin Как создать объект JavaScript для объекта Kotlin? Покрытие кода Котлина в конвейере CI Ошибка при попытке ввести ViewModelProvider в действие с помощью Dagger2 и Kotlin Котлин объединяет два изменяемых значения с возможностью смены имени Ожидаемое несоответствие типа с выражением в Котлине Я получаю ошибку неоднозначности разрешения перегрузки при безопасном вызове kotlin Kotlin добавляет пользовательский прослушиватель для доступа к виджетам на Android Ошибка компиляции Kotlin при использовании Parcelable Как программно добавить вид в макет Constraint? Функциональный способ накопления внутри функции Единицы в Котлине? Элемент ItemViewModel TornadoFx имеет значение null @Autowired не работает в параметре метода Настройка прослушивателей Android в Kotlin – использование возврата в lambdas Вывод типа компилятора Kotlin не может выбрать способ вызова (двусмысленность с типичными типами)