当前位置: 首页 > 知识库问答 >
问题:

final或val函数参数或在Kotlin中?

雷逸仙
2023-03-14

为什么Kotlin删除了在Java中非常有用的final或val函数参数?

fun say(val msg: String = "Hello World") {
    msg = "Hello To Me" // would give an error here since msg is val    
                        //or final
    ...
    ...
    ...
}

共有3个答案

谷梁英毅
2023-03-14

另一个原因是val和var只有一个字母不同。这可能非常令人困惑。因此,对于函数参数,他们完全删除了选项。从而消除了这一小区域的混乱(但仍保留它在其他地方——去图)。

国跃
2023-03-14

静态编程语言M5.1支持的可变参数删除后,在早期版本中可以使用

fun foo(var x: Int) {
  x = 5
}

Kotlin开发人员表示,删除此功能的主要原因如下-

>

另一个混淆的来源是主构造函数:“val”或“var”在构造函数声明中的含义与函数声明(即创建属性)时的含义不同。

此外,我们都知道变异参数不是好的风格,所以在函数中的参数前面写“val”或“var”,不再允许捕获for循环块。

总结-现在所有参数值均为val。您必须引入单独的变量进行重新初始化。示例-

fun say(val msg: String) {
    var tempMsg = msg
    if(yourConditionSatisfy) {
       tempMsg = "Hello To Me"
    }
}
闾丘照
2023-03-14

Kotlin函数参数为最终参数。没有val或final关键字,因为这是默认值(并且无法更改)。

 类似资料: