首页 > 解决方案 > 函数参数的行为是否像 Kotlin 中的 val 类型的变量?

问题描述

我正在创建一个函数,并尝试增加声明为整数的参数的值。但它表示该参数的值不能重新分配。我是初学者,所以如果我遗漏了一些概念,请告诉我。

标签: functionkotlinparameters

解决方案


是的,在 Kotlin 中函数参数不能更改。

(但是,如果它们引用可变对象,则这些对象可以更改。例如,如果您声明fun a(b: List<String>)了 ,那么您可以将另一个字符串添加到列表中;但您不能设置b为引用不同的列表。)

这与 Java 不同,Java 中的参数是可变的(除非指定为final)。

这种行为是在 Kotlin 里程碑 M5.1中宣布的,它被解释为避免混淆(尤其是在构造函数中),并促进良好的风格。

另请参阅答案。


推荐阅读