为什么 quol 中的函数参数中不允许使用 var 或 val?



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

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

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

var的支持早在kotlin中就被删除了,原因如下:

的主要原因是这是令人困惑的:人们倾向于认为这意味着通过引用传递参数,我们不支持(它在运行时是昂贵的)。另一个混淆的来源是主构造函数:构造函数声明中的"val"或"var"与函数声明中的"val"或"var"的含义不同(即,它创建了一个属性)。而且,我们都知道改变形参不是一种好的风格,所以在函数的形参前面写"val"或"var",for循环的catch块是不允许的。

详情见https://blog.jetbrains.com/kotlin/2013/02/kotlin-m5-1/.

最新更新