IntArray vs Array<Int> em Kotlin: qual a diferença e o que escolher?
Olá, colegas! Comecei a estudar Kotlin e me deparei com uma dúvida: a linguagem tem dois tipos para trabalhar com arrays de números inteiros — IntArray e Array. À primeira vista, eles são parecidos, mas o compilador reclama quando tento misturá-los.
Aqui está um exemplo que me confundiu:
```kotlin
val arr1: IntArray = intArrayOf(1, 2, 3)
val arr2: Array = arrayOf(1, 2, 3)
// Tento atribuir um ao outro — erro!
// arr1 = arr2 // Type mismatch
```
Por que isso? Afinal, ambos armazenam números inteiros. Li que IntArray é um tipo primitivo, enquanto Array é um tipo por referência, mas não entendo como isso afeta a performance e quando usar cada um.
Também notei que eles têm métodos diferentes. Por exemplo, IntArray tem sum() e average() diretamente, enquanto Array precisa de .map { it.toDouble() }. Por quê?
E mais uma pergunta: se eu escrevo uma função que recebe um array de números, qual tipo escolher para que ela funcione tanto com IntArray quanto com Array? Tentei usar List — funciona, mas