无法重用函数参数

我试图重用函数参数这样的事情

fun test(i: Int) { i += 5 } 

但正如这个区别所指出的那样

函数参数是val不是var

在Kotlin中,函数参数被视为val 。 这意味着你将不得不在你的函数内部做一些事情来“修改”它的引用。

你的解决方案将工作,但我觉得这是一个不好的做法,以影响变量。 这会导致混淆,并且不能很准确地涵盖您了解该功能对于本地功能的影响的意图。

我会去这样的事情:

 fun test(i: Int) { var i2 = i i2 += 3 // etc... } 

我发现唯一的解决方案是使用名称阴影,即类似的东西

 fun test(i: Int) { var i = i i += 5 } 

我不确定它是否是最好的解决方案,因为它感觉不对,即使IntelliJ IDEA也提醒我。

我希望有这样的魔法

 fun test(var i: Int) { i += 5 } 

但不幸的是,这甚至不是一个好消息。