无法重用函数参数
我试图重用函数参数这样的事情
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 }
但不幸的是,这甚至不是一个好消息。
- Kotlin Spek – 如何用测试报告生成XML?
- Android Studio / Kotlin – 无效错误“覆盖方法应该调用超级”
- Kotlin Dagger2找不到符号ApplicationModule_ProvideApplicationFactory
- Int :: class.javaPrimitiveType.kotlin引用不等于Int :: class.javaObjectType.kotlin
- 如何在回收视图中为自定义ViewHolder实现OnClickListener?
- 如何在kotlintest 2.x(interceptSpec)中正确初始化共享资源
- IllegalStateException:parcel.readString()不能为null
- Kotlin Textview id引用不适用于非英文字符
- 没有类型注释的Kotlin函数参数