Давно простится статья «Kotlin vs C#». Сам ушел с C# на Kotlin, много плюшек есть в обоих языках (может потому что Бреслав работал в MS, до работы на JetBrains), но в котлине, на мой взгляд, все более удобно, те же екстеншены.
NPE — это легенда в мире программирования. И в Котлине его просто нету еще до компиляции возможные места возникновения NullPointerException считаются синтаксической ошибкой. Вас просто заставляют сделать проверку на null.
Вот тут Вы слукавили, замечательно прилетает с джавы.
Статья хорошая, легко читается, но билдер не рабочий:
Тут объявляются дефолтные значения для имутабельных свойств
data class Person(var name: String? = null,
var age: Int? = null,
var address: Address? = null)
Тут создается объект (inline добавить бы) без передачи значений — все свойства == null
data class Person(var name: String? = null,
var age: Int? = null,
var address: Address? = null)
А тут compile error так как автор сетит неизменяемые свойства
val person = person {
name = "John" // ERR: val cannot be reassigned
age = 25
}
Мутабельные свойства должны быть (но это не по Котлински), или передавать значения в качестве параметров функции, ну еще может как-то можно извратиться с методом copy()
Про корутины, это да, а про все остальное тут полно всего.
Вот так описывается поле с геттером
Про это уже только ленивый не писал)
Вот тут Вы слукавили, замечательно прилетает с джавы.
Извиняюсь, видимо еще не проснулся — все тут верно
var
вездеСтатья хорошая, легко читается, но билдер не рабочий:
Тут объявляются дефолтные значения для имутабельных свойств
Тут создается объект (
inline
добавить бы) без передачи значений — все свойства ==null
А тут compile error так как автор сетит неизменяемые свойства
Мутабельные свойства должны быть (но это не по
Котлински), или передавать значения в качестве параметров функции, ну еще может как-то можно извратиться с методомcopy()
Вот тут пример DSL для языка разметки HTML, от разработчиков. На основе описанных здесь типа-безопасных билдеров
Я имел ввиду по функционалу