为什么Kotlin删除了在Java中非常有用的最终参数或val函数参数?
fun say(val msg: String = "Hello World") {
msg = "Hello To Me" // would give an error here since msg is val
//or final
...
...
...
}发布于 2016-11-12 13:43:28
Kotlin函数参数是最终的。没有val或final关键字,因为这是默认的(不能更改)。
发布于 2017-08-13 09:26:21
在删除了Kotlin M5.1对可变参数的支持之后,可以在可以使用
fun foo(var x: Int) {
x = 5
}据Kotlin开发人员说,删除此功能的主要原因如下-
汇总-现在所有的参数值都是val。您必须为重新初始化引入单独的变量。例子-
fun say(val msg: String) {
var tempMsg = msg
if(yourConditionSatisfy) {
tempMsg = "Hello To Me"
}
}发布于 2020-11-05 14:29:30
另一个原因是val和var只有一个字母不同。这会让人很困惑。因此,对于函数参数,它们完全删除了该选项。这样就消除了这一小区域的混乱(但却把它保存在其他地方
https://stackoverflow.com/questions/40563406
复制相似问题