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——它可以用,但