IntArray vs Array<Int> en Kotlin : quelle est la différence et que choisir ?
Bonjour, collègues ! J'ai commencé à étudier Kotlin et j'ai rencontré une incompréhension : le langage propose deux types pour travailler avec des tableaux d'entiers — IntArray et Array. À première vue, ils se ressemblent, mais le compilateur râle quand j'essaie de les mélanger.
Voici un exemple qui m'a troublé :
```kotlin
val arr1: IntArray = intArrayOf(1, 2, 3)
val arr2: Array = arrayOf(1, 2, 3)
// J'essaie d'en assigner un à l'autre — erreur !
// arr1 = arr2 // Type mismatch
```
Pourquoi cela ? Pourtant, les deux stockent des entiers. J'ai lu que IntArray est un type primitif, tandis que Array est un type référence, mais je ne comprends pas comment cela affecte les performances et quand utiliser quoi.
J'ai aussi remarqué qu'ils ont des méthodes différentes. Par exemple, IntArray dispose de sum() et average() directement prêts à l'emploi, alors que pour Array, il faut écrire .map { it.toDouble() }. Pourquoi ?
Et encore une question : si j'écris une fonction qui prend un tableau de nombres, quel type choisir pour qu'elle fonctionne à la fois avec IntArray et Array ? J'ai essayé d'utiliser List — ça marche, mais