Что выведет в консоль код на Kotlin где создаётся mutableMap затем к нему применяется plus и apply но без изменения исходной коллекции

«Что выведет в консоль код на Kotlin где создаётся mutableMap затем к нему применяется plus и apply но без изменения исходной коллекции» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

val map = mutableMapOf("a" to 1)
val newMap = map.plus("b" to 2)
map.apply { put("c", 3) }

println(map)      // {a=1, c=3}
println(newMap)   // {a=1, b=2}

plus создаёт новую неизменяемую Map, не модифицируя исходную. apply работает с исходной MutableMap, добавляя элемент. Итог:

  • исходная map содержит "a" и "c"
  • newMap содержит "a" и "b"