Avatar ·

IntArray 与 Array<Int> 在 Kotlin 中的区别与选择

大家好!我开始学习Kotlin,遇到了一个困惑:语言中有两种处理整数数组的类型——IntArray和Array。乍一看它们很相似,但当我试图混用时编译器会报错。 下面是一个让我困惑的例子: ```kotlin val arr1: IntArray = intArrayOf(1, 2, 3) val arr2: Array = arrayOf(1, 2, 3) // 试图将一个赋值给另一个——报错! // arr1 = arr2 // Type mismatch ``` 为什么会这样?毕竟两者都存储整数。我了解到IntArray是原始类型,而Array是引用类型,但我不明白这如何影响性能以及何时该用哪个。 我还注意到它们有不同的方法。例如,IntArray直接有sum()和average(),而Array需要写.map { it.toDouble() }。为什么? 另一个问题:如果我写一个接受数字数组的函数,应该选择哪种类型才能同时兼容IntArray和Array?我试过用List——它可以用,但