Koltin阵列操作

时间:2018-07-16 16:51:16

标签: arrays kotlin

我有一个int数组,它需要在函数中发送该对象,并将该数组中的每个元素乘以10并返回一个新数组。就像在koltin中,函数参数为val一样,因此我们无法更改当前数组的值。

2 个答案:

答案 0 :(得分:1)

尽管函数参数在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 }
}

答案 1 :(得分:0)

改为使用MutableList或简单使用var