答案 0 :(得分:4)
在Kotlin中,函数参数被视为val
。这意味着你必须在你的功能中做一些事情,以便修改"修改"它的参考。
您的解决方案可行,但我觉得隐藏变量是一种不好的做法。它会导致混淆,并且不能完全准确地涵盖您理解效果是函数本地的意图。
我会选择这样的东西:
fun test(i: Int) {
var i2 = i
i2 += 3 // etc...
}
答案 1 :(得分:0)
我发现的唯一解决方案是使用名称阴影,即类似
fun test(i: Int) {
var i = i
i += 5
}
我不确定它是否是最好的解决方案,因为它感觉不对,即使IntelliJ IDEA也警告过我。
我希望像
那样神奇fun test(var i: Int) {
i += 5
}
但不幸的是,这甚至没有消费。