【问题标题】:Kotlin Array manipulationKotlin 数组操作
【发布时间】:2018-12-24 06:51:42
【问题描述】:

我有一个 int 数组,它需要在函数中发送一个对象,并将该数组中的每个元素乘以 10 并返回一个新数组。和 kotlin 一样,函数参数是 val,所以我们不能改变当前数组的值。

【问题讨论】:

标签: arrays kotlin


【解决方案1】:

虽然函数参数在 Kotlin 中是“val's”,这意味着您无法修改它们指向的对象,但对象(在您的情况下是数组)仍然可以是可变的。

如果你想改变传递给你的函数的数组,你当然可以这样做,这将为所有引用它的人改变数组中的值:

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 }
}

【讨论】:

    【解决方案2】:

    改用MutableList 或简单地使用var

    【讨论】:

    • 不能在函数的参数中使用 var
    猜你喜欢
    • 2022-01-21
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 2016-04-14
    • 2018-06-18
    • 1970-01-01
    相关资源
    最近更新 更多