Avatar ·

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