Объявления классов в Котлине

Я создал образец Android-проекта, используя язык программирования Kotlin, используя этот блог . Я новичок в программировании Котлина. Я наткнулся на эту линию,

data class Cats(var data: Data? = null)

который я считаю, что это, создавая класс с именем Cats который имеет переменную с именем data . Что это за data: Data? = null data: Data? = null означает? Моя модель всего класса:

 data class Cats(var data: Data? = null) data class Data(var images: ArrayList<Image>? = null) data class Image(var url: String? = "", var id: String? = "", var source_url: String? = "") 

Вы правы в том, что класс Cats будет иметь изменяемое свойство с именем data , поскольку он объявлен внутри основного конструктора класса с ключевым словом var (см. Страницы документов о классах и свойствах ).

Затем знак вопроса в имени типа в Kotlin означает, что переменная имеет тип NULL , т. Е. Может хранить значение null . С другой стороны, переменные с ненулевыми типами не могут содержать null s в Kotlin.

data: Data? = null data: Data? = null – это синтаксис для значения параметра по умолчанию . Он позволяет не передавать параметр data в вызов конструктора, и в этом случае будет использоваться значение по умолчанию null . Это также работает для функций.

И, наконец, модификатор data в объявлении класса означает, что equals , hashCode , toString , copy и деструктурирование будут генерироваться для класса на основе свойств, объявленных в основном конструкторе.

=> Классы в Kotlin объявляются с использованием класса keyword:

class Invoice {}

=> Оба заголовка и тела являются необязательными; если класс не имеет тела, фигурные скобки могут быть опущены.

счет-фактура класса