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 
  • Advertencia obsoleta de Kotlin Runtime (complemento Kotlin 1.1.2-release-Studio2.3-3)
  • Prueba RxJava2 Flowable Query Room
  • ejecutar HelloAndroid desde Gradle?
  • No se puede recuperar uno de los datos nesteds de Firebase Realtime Database
  • Modificar el valor de una variable global de una class interna
  • package Kotlin .kt class en un JAR
  • Cómo comparar el time de inactividad de MotionEvent con un reloj, ¿cuál es su base de time?
  • java.lang.AbstractMethodError: método abstracto al ejecutar espresso en Kotlin con Mockito
  • Kotlin inteligente echó el segundo valor de un par con filter
  • Problemas al configurar una image para un Kotlin / Anko DSL definido ImageView
  • Proyecto no comstackdo usando Kotlin en Project