您好,我是Kotlin的新手,对参数变量感到困惑,因为它们是作为本地“ val”变量创建的,因此无法重用于其他值。 例如:
fun myFunction(mesg:String){
mesg="hi" //local val variables that can’t be reused for other values
}
但是下面的代码可以正常工作
fun main(args: Array<String>) {
val abc = arrayOf("A", "B", "C")
updateArray(abc)
println(abc[2])// print Z
}
fun updateArray(abcParam: Array<String>) {
abcParam[2] = "Z" //
}
答案 0 :(得分:1)
请记住,在kotlin中,所有值都是通过值传递给函数的。对于基本类型,这是可以的,而且很明显,您不能更改按值传递的变量。但是,如果我们谈论对象,则其引用会传递给函数,因此您不能仅更改传递给函数的引用,而可以随意更改引用所指向的对象。 这就是为什么您可以更改数组元素但不能更改字符串的原因。