为什么我们使用 val 而不是 var 来记住 Jetpack Compose 中的可变状态?

Why do we use val instead of var for remembering mutable state in Jetpack Compose?

我一直看到写的示例代码

val text = remember{ mutableStateOf("") }

当文本的字符串发生变化时,val不就是一个var吗?因此,以下行也应该有效吗?绝对想了解为什么我可以改用 val。

var text = 记住{ mutableStateOf("") }

在科特林中, val 用于声明无法重新指向另一个对象的引用。 您不能更改引用,但您可以随时更改指向对象的状态。

变化的字符串部分封装在remember创建的对象中,而不是text引用。

val text = remember{ mutableStateOf("") }
val myCar = Car() // object 578

// changing the state of the car
// but not the myCar
myCar.setSpeed(100) 

// compiler will not allow changing the reference
// myCar = anotherCar

var latestCar = Car() // object 345

// latestCar refererence will point to object 578
latestCar = myCar

Kotlin 的 val 等同于 java 中引用的 final 关键字。