Kotlin 构造函数和普通函数参数定义方式的区别

256 阅读1分钟

在Kotlin的开发中,发现构造函数中的参数可以使用varval来控制参数是否可变,但在使用普通函数时无法对参数使用varval来定义可变,这一点就很奇怪,为什么没有统一起来

网上找了一番发现,主构造函数中使用varval是为了更好的声明和初始化参数,意思是将该变量作为类的成员变量来使用,还会在此基础上默认构建变量的GetSet函数。

我们将上图代码从Kotlin转化为Java可以发现,在定义number2时使用了final关键字,直接定义了是不可变的状态,那么根据查阅的资料和转化的代码进一步证实了,构造函数中使用var,val是为了更快捷方便的初始化变量,与普通函数传入的参数不同。

在Kotlin中,函数传入的参数在很早的时候是可变的,但在Kotlin M5推出后,官方就删除了函数参数中对可变参数的支持,Kotlin Blog明确的指出了这一特性。

最后得出结论:

  • 在Kotlin中,函数的参数是不可变的,Kotlin官方在2013年就移除了对可变参数的支持。

如有错误,欢迎评论区指正,谢谢!