无法重用函数参数
我试图重用函数参数这样的事情
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 }
但不幸的是,这甚至不是一个好消息。