¿Qué hay de diferente entre dos constructores?

¿Qué diferencia hay entre este tipo de constructor?

class ColorsArray(context: Context) {} 

y

 class ColorsArray(var context: Context){} 

La segunda class no solo declara un constructor que toma un Context , sino que también tiene una propiedad llamada context donde guarda el valor pasado al constructor. A continuación, puede acceder a esto de la siguiente manera:

 val colorsArray = ColorsArray(context) println(colorsArray.context) 

Como lo ha declarado como var y no como val , también puede reasignarse.

 colorsArray.context = someOtherContext 

Las properties declaradas en el constructor primario están cubiertas en los documentos aquí .

En el primer caso, el constructor toma un parámetro de context y no hace nada con él.

En el segundo caso, el ejemplo de código proporcionado:

 class ColorsArray(var context: Context) { } 

es un atajo para:

 class ColorsArray(context: Context) { var context: Context = context } 
  • incapaz de configurar a Kotlin
  • Kotlin zipToda alternativa
  • Crear una ArrayList de elementos únicos en una ArrayList
  • ¿Cuál es la razón para usar el sufijo "Kt" en las classs de Kotlin?
  • ¿Por qué tengo un Log de salida no deseado al fusionar 2 observables en otro Observable, que los almacena temporalmente cada 10 segundos?
  • ¿Cómo puede un GpioCallback registrar "falso" dos veces seguidas?
  • Quiero agregar mi versión de kotlin al proyecto Gradel
  • Cómo eludir NetworkOnMainThreadException en Kotlin
  • ¿Kotlin necesita un marco DI?
  • No se puede conectar a Remote Mongo DB mediante Springboot
  • Información de Facebook no se muestra