Avatar ·

Como copiar corretamente uma lista (list) em Kotlin: clonagem, cópia e cópia profunda

Olá a todos! Comecei a estudar Kotlin recentemente e me deparei com um problema inesperado ao trabalhar com listas. Eu tenho uma lista de números `originalList` e quero fazer uma cópia dela para modificar a cópia sem afetar o original. Tentei simplesmente atribuir uma lista à outra: ```kotlin fun main() { val originalList = mutableListOf(1, 2, 3, 4, 5) val copiedList = originalList copiedList.add(6) println("Original: $originalList") // [1, 2, 3, 4, 5, 6] — mudou! println("Copied: $copiedList") // [1, 2, 3, 4, 5, 6] } ``` Como você pode ver, ao modificar `copiedList`, o `originalList` também muda. Isso acontece porque a variável `copiedList` referencia o mesmo objeto na memória, e não uma nova cópia dos dados. Eu sei que em Java, para copiar listas, usava-se `new ArrayList<>(originalList)`. Mas existem maneiras mais idiomáticas em Kotlin? Existem métodos como `.clone()`, `.copy()` ou `toList()`? E o que fazer se a lista contiver objetos complexos que