首页 > 解决方案 > 为什么 var 或 val 不允许在 kotlin 中的函数参数中使用?

问题描述

fun myfunction(a:String) //这是有效的

fun myfunction(var a:String)//这是无效的

fun myfunction(val a:String)//这是无效的

标签: kotlin

解决方案


var出于以下原因,从 kotlin 中删除了对的支持:

主要原因是这令人困惑:人们倾向于认为这意味着通过引用传递参数,我们不支持这种方式(运行时代价高昂)。另一个混淆的来源是主构造函数:构造函数声明中的“val”或“var”意味着与函数声明(即,它创建一个属性)相同的东西不同。另外,我们都知道修改参数不是很好的风格,所以在函数的参数前面写“val”或“var”,for循环的catch块不再被允许。

https://blog.jetbrains.com/kotlin/2013/02/kotlin-m5-1/中的更多详细信息。


推荐阅读