Qual é a diferença entre List e Array em Kotlin? Quando usar cada um?
Olá, colegas! Acabei de começar a estudar Kotlin e vim do Java. Em Kotlin, existem dois tipos semelhantes: `List` e `Array`. Vejo que ambos armazenam vários elementos, mas não consigo entender qual é a diferença chave e quando usar cada um.
Por exemplo, estou escrevendo um programa simples para armazenar nomes de estudantes:
```kotlin
val namesArray = arrayOf("Alice", "Bob", "Charlie")
val namesList = listOf("Alice", "Bob", "Charlie")
```
Ambos funcionam, posso acessar pelo índice: `namesArray[0]` e `namesList[0]` — ambos retornam "Alice". Mas notei que `Array` tem a propriedade `size`, enquanto `List` tem `count()`. Também posso alterar um elemento do array:
```kotlin
namesArray[0] = "Eve" // funciona
namesList[0] = "Eve" // erro de compilação
```
Por que isso? E também ouvi dizer que `List` pode ser mutável (`MutableList`), enquanto o array é sempre mutável. Mas para que serve `Array` se `MutableList` faz a mesma coisa? E como isso se relaciona com performance? Por favor, me expliquem qual é a diferença fundamental.