在Kotlin的开发中,发现构造函数中的参数可以使用
var,val来控制参数是否可变,但在使用普通函数时无法对参数使用var,val来定义可变,这一点就很奇怪,为什么没有统一起来
网上找了一番发现,主构造函数中使用var和val是为了更好的声明和初始化参数,意思是将该变量作为类的成员变量来使用,还会在此基础上默认构建变量的Get和Set函数。
我们将上图代码从Kotlin转化为Java可以发现,在定义number2时使用了final关键字,直接定义了是不可变的状态,那么根据查阅的资料和转化的代码进一步证实了,构造函数中使用var,val是为了更快捷方便的初始化变量,与普通函数传入的参数不同。
在Kotlin中,函数传入的参数在很早的时候是可变的,但在Kotlin M5推出后,官方就删除了函数参数中对可变参数的支持,Kotlin Blog明确的指出了这一特性。
最后得出结论:
- 在Kotlin中,函数的参数是不可变的,Kotlin官方在2013年就移除了对可变参数的支持。
如有错误,欢迎评论区指正,谢谢!