gpt4 book ai didi

parameters - 无法为 Kotlin 中 fun 中的局部变量重新分配 Val 的编译时错误

转载 作者:IT老高 更新时间:2023-10-28 13:30:36 26 4
gpt4 key购买 nike

在有趣的交换中,我试图用 b1 更改 a1 的值,但它显示 “val 无法重新分配编译时错误”。如果我不能这样改变,那怎么可能呢?

fun swap(a1: String, b1: String) {
val temp = a1
a1 = b1
b1 = temp
}

注意:这只是一个示例,用于了解为什么我无法像在 Java 中那样重新分配局部变量。

最佳答案

在 Kotlin 中,val 声明了最终的、只读的、引用 - 这正是编译器错误告诉你的内容

Val cannot be reassigned

一旦为 val 赋值,就无法更改。如果您希望能够重新分配它,则必须将其声明为 var

在 Kotlin 中,方法参数被隐式声明为 final val,因此您不能像在 Java 中那样重新分配它们。

但您代码中的核心错误是您试图交换方法参数。由于方法参数是通过值而不是通过引用传递的,因此您想要实现的目标在 Kotlin 中是不可能的(就像在 Java 中一样)。即使您在方法调用中重新分配参数,传递给该方法的原始变量也不会改变。

关于parameters - 无法为 Kotlin 中 fun 中的局部变量重新分配 Val 的编译时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44198585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com