Size: a a a

Kotlin Community

2020 September 10

BP

Bogdan Panchenko in Kotlin Community
А не правильно прочитал
источник

с#

саша сок #KotlinGang... in Kotlin Community
я тоже не говорю, что котлин идеальный, но на джаве писать стрём и единственная проблема - несмотря на все фичи - многословность

они добавили какой-то record, который через конструктор добавляет геттеры и сетьеры, хотя в котлине это встроенная фича, а не притянутая с костылями

и много таких примеров есть, когда фичи не вписываются в язык, но они их вписывают с доп костылями
источник

AL

Alexander Levin in Kotlin Community
Bogdan Panchenko
Ну смаркастов поудобней, не нужно имена придумывать. Мне это больше нравится
Ну везде и плюсы и минусы:

Смарткасты - очень лаконично, местами нужны костыли, чтобы работало.
Паттерн матчинг - требует некоторого количества бойлерплейта, но работает всегда.
источник

BP

Bogdan Panchenko in Kotlin Community
Pavel Erokhin
сериализация ща вроде уже не экспериментал, не? 1.0 которая. kotlinx.serialization
Вроде rc. Ну и аноташки ещё есть, не везде правда, там где автоматическая серелизация
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Levin
Ну везде и плюсы и минусы:

Смарткасты - очень лаконично, местами нужны костыли, чтобы работало.
Паттерн матчинг - требует некоторого количества бойлерплейта, но работает всегда.
просто объявить локал переменную, что логично, ведь кастомный
get() может позвращать разные типы
источник

VP

Vladimir Petrakovich in Kotlin Community
саша сок #KotlinGang
я тоже не говорю, что котлин идеальный, но на джаве писать стрём и единственная проблема - несмотря на все фичи - многословность

они добавили какой-то record, который через конструктор добавляет геттеры и сетьеры, хотя в котлине это встроенная фича, а не притянутая с костылями

и много таких примеров есть, когда фичи не вписываются в язык, но они их вписывают с доп костылями
Ахаха
record - их доп. костыли
data class - наша встроенная фича
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Levin
Ну везде и плюсы и минусы:

Смарткасты - очень лаконично, местами нужны костыли, чтобы работало.
Паттерн матчинг - требует некоторого количества бойлерплейта, но работает всегда.
+ полностью согласен
источник

с#

саша сок #KotlinGang... in Kotlin Community
Vladimir Petrakovich
Ахаха
record - их доп. костыли
data class - наша встроенная фича
так лол

class A(var a: ...)
data class A(var a: ...)
источник

VP

Vladimir Petrakovich in Kotlin Community
саша сок #KotlinGang
так лол

class A(var a: ...)
data class A(var a: ...)
И что?
источник

с#

саша сок #KotlinGang... in Kotlin Community
а в джаве через конструктор объявить проверти только дата класс рекорд может
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Ахаха
record - их доп. костыли
data class - наша встроенная фича
Рекорды пересекаются с велью типами.
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Рекорды пересекаются с велью типами.
Нет. inline class отдельно
источник

VP

Vladimir Petrakovich in Kotlin Community
саша сок #KotlinGang
а в джаве через конструктор объявить проверти только дата класс рекорд может
Ну так остальные не заслужили, рано ещё.
Но это не превращает рекорды в доп. костыли.
источник

с#

саша сок #KotlinGang... in Kotlin Community
Alexander Levin
Ну везде и плюсы и минусы:

Смарткасты - очень лаконично, местами нужны костыли, чтобы работало.
Паттерн матчинг - требует некоторого количества бойлерплейта, но работает всегда.
паттернматчинг это круто, но ничего не мешает это в котлин добавить, это довольно простой сахар
источник

VP

Vladimir Petrakovich in Kotlin Community
Зато рекорды сразу иммутабельные, и там куда больше других ограничений
источник

BP

Bogdan Panchenko in Kotlin Community
Quantum Harmonizer
Нет. inline class отдельно
Ну отдельно, но я так понял для них похожим оптимизации будут. Или не верная инфа ?
источник

QH

Quantum Harmonizer in Kotlin Community
Bogdan Panchenko
Ну отдельно, но я так понял для них похожим оптимизации будут. Или не верная инфа ?
чёт не слышал о том, что у них тоже не будет айдентити
источник

AL

Alexander Levin in Kotlin Community
саша сок #KotlinGang
просто объявить локал переменную, что логично, ведь кастомный
get() может позвращать разные типы
Всё логично и всё правильно. Но тем не менее, иногда мы можем просто написать if (x.y != null) println(y.size), а иногда должны создать локальную переменную или захватить в let или ещё что либо. В паттерн матчинге всегда есть немного больше кода по сравнению с оптимистичным случаем смарткаста, но он очень консистентный. Но да, нужно придумывать какое-то новое имя переменной.
источник

VP

Vladimir Petrakovich in Kotlin Community
А data class - обычная помойка со сгенерированными equals/hashCode/toString, которые ещё и можно переопределять
источник

BP

Bogdan Panchenko in Kotlin Community
саша сок #KotlinGang
паттернматчинг это круто, но ничего не мешает это в котлин добавить, это довольно простой сахар
Да? Посмотри доклад Тагира, очень крутой мужик)
источник