Что отличается между двумя конструкторами?

Чем отличается этот тип конструктора?

class ColorsArray(context: Context) {} 

а также

 class ColorsArray(var context: Context){} 

Второй класс не только объявляет конструктор, который принимает Context , но также имеет свойство с именем context где он сохраняет значение, переданное в конструктор. Затем вы можете получить доступ к этому так:

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

Поскольку вы объявили его как var а не val , это также можно переназначить.

 colorsArray.context = someOtherContext 

Свойства, объявленные в основном конструкторе, рассматриваются в документах здесь .

В первом случае конструктор принимает параметр context и ничего не делает с ним.

Во втором случае приведен пример кода:

 class ColorsArray(var context: Context) { } 

это ярлык для:

 class ColorsArray(context: Context) { var context: Context = context } 
Intereting Posts
Как создать переменную, которая может принимать строки и функции в Котлин? Ошибка обратного вызова OnSuccessListener Firebase Storage Вызвано: android.database.sqlite.SQLiteException: рядом с «org»: синтаксическая ошибка (код 1): при компиляции: Ошибка сборки Kotlin kapt, gradle и ebean Параметры обобщенного типа более высокого порядка (или рекурсивные?) В котлине Дженерики в Котлине с расширением Использование подчеркивания («_») сразу после переменной в строковых шаблонах в Котлине Querydsl – результат разделения на два или более объекта Как начать аннотация Обработка (kapt) для локальной библиотеки? Поставщик контента в Android от Kotlin recyclerview notifyDataSetChanged () не работает – kotlin Как инициализировать два конструктора в котлин с внутренним классом? Есть ли такой синтаксис, как #region #endregion в Котлине? нет конструктора по умолчанию для объекта JPA с Kotlin даже с плагином noarg Постоянная поддержка на android oreo