Copia de class de datos de Kotlin con valor de var cambiado

¿Por qué no se puede copyr el object de class de datos con var value change?

data class AppState(var list: List<Image> = ArrayList<Image>(), val uiState: UIState = UIState.LIST, val isFetching: Boolean = false) ... val list = state!!.list.sublist(0,1); state.copy(list = list) // No change state.copy(isFetching = true) // Works like a charm 

El método de copy no muta el object original. Devuelve un nuevo object con los valores modificados. Intenté su ejemplo, y ambas copys funcionan como se esperaba cuando capturo el object devuelto en un nuevo valor val :

 val list = state!!.list.subList(0,1) // Creates a new object with the new list. val withNewList = state.copy(list = list) // Creates a new object with the new isFetching. val withNewIsFetching = withNewList.copy(isFetching = true) 

Si desea cambiar el valor de la list del object de state , puede hacer esto:

 val list = state!!.list.subList(0,1) state.list = list 
  • usando intellij-markdown en el proyecto de Kotlin para Android
  • Cómo `List <MyClass> :: clas.java` en kotlin
  • solo se permiten classs en el lado izquierdo de un literal de class al usar Mockito y kotlin
  • Cadena a bitmap en Kotlin
  • ¿Por qué no mira hacia adelante y mira detrás del trabajo de Regex en Kotlin?
  • Error al usar un object para implementar una list vacía
  • Verificar si la function está vacía en Kotlin
  • COROUTINE_SUSPENDED y suspendCoroutineOrReturn en Kotlin
  • Error del complemento de Kotlin en el estudio Android
  • ¿Cómo nombrar un hilo?
  • Kotlin @JvmStatic y anulación accidental en un object complementario