Назад к вопросам
JuniorТеорияЧасто
Что выведет программа?
fun main() {
val items = mutableListOf(1, 2)
val view: List<Int> = items
items.add(3)
println(view)
}[1, 2, 3]
- Ждать
[1, 2]: имя типаListничего не копирует.viewиitems— имена одного списка, поэтомуviewвидит число3, добавленное черезitems. - Считать, что
valзапрещаетadd:valне даёт имениitemsуказывать на другой список, а сам список по-прежнему растёт черезadd.
- Как изменить программу, чтобы
println(view)напечатал[1, 2]? - Почему
view.add(4)не компилируется, хотяitems.add(3)компилируется?