Por que em Kotlin List não tem métodos add e remove, e Map não tem put?
Olá a todos! Comecei a estudar Kotlin recentemente, vim do Java, e me deparei com uma situação confusa. Em Java, estamos acostumados a trabalhar com ArrayList, HashMap e chamar list.add(), map.put(), etc. Mas em Kotlin, quando escrevo:
```kotlin
val myList = listOf(1, 2, 3)
myList.add(4) // Erro: Unresolved reference: add
val myMap = mapOf("a" to 1, "b" to 2)
myMap.put("c", 3) // Erro: Unresolved reference: put
```
O compilador reclama que esses métodos não existem. Tentei usar mutableListOf e mutableMapOf — aí add e put funcionam. Mas por que para listOf e mapOf comuns eles não existem? É um bug da linguagem? Ou estou entendendo algo errado na filosofia do Kotlin?
Por favor, me digam como trabalhar corretamente com coleções em Kotlin, se preciso tanto adicionar elementos quanto apenas ler dados? E o que significam esses "mutable" e "immutable"? Desde já, obrigado!
<<>>
Resposta curta: diferença entre coleções mutáveis e imutáveis
Em Kotlin, as coleções são divididas em dois tipos: mutable (mutável) e immutable (imutável).