我有一个int数组,它需要在函数中发送一个对象,并将该数组中的每个元素乘以10,然后返回一个新数组。就像在kotlin中,函数参数为val一样,因此我们无法更改当前数组的值。
最佳答案
尽管函数参数在Kotlin中是“val
的”,这意味着您无法修改它们指向的对象,但是该对象(在您的情况下为数组)仍然是可变的。
如果您想更改传递给函数的数组,则可以做到这一点,这将更改每个引用该数组的人的值:
fun multiplyByTenInPlace(array: IntArray) {
for (i in array.indices) {
array[i] = array[i] * 10
}
}
如果要创建一个新数组而不是返回新值:
fun multiplyByTen(array: IntArray): IntArray {
return array.map { it * 10 }.toIntArray()
}
或更妙的是,没有在中间创建列表:
fun multiplyByTen(array: IntArray): IntArray {
return IntArray(array.size) { i -> array[i] * 10 }
}