Size: a a a

Kotlin Community

2020 March 26

AE

Alexandr Emelyanov in Kotlin Community
Unat
Это неявного приведения нету, а расширение на явный набор интерфейсов - пожалуйста
да, но при этом таргет тип должен их реализовывать, а при duck typing - нет
источник

AE

Alexandr Emelyanov in Kotlin Community
достаточно иметь те же сигнатуры в составе
источник

U

Unat in Kotlin Community
И спасибо мудрым, что нет
источник

AE

Alexandr Emelyanov in Kotlin Community
я бы сказал это удобно, но для котлина не реализуемо, т.к. в мире jvm этого нет
источник

NY

Nikita Yatskivskiy in Kotlin Community
Давайте ещё раз - то, что в свифте - это и есть duck typing?
источник

U

Unat in Kotlin Community
Но суть вообще не в том, а в extension'ах на data class'ы
источник

U

Unat in Kotlin Community
Nikita Yatskivskiy
Давайте ещё раз - то, что в свифте - это и есть duck typing?
нет, там такого тоже нет
источник

AE

Alexandr Emelyanov in Kotlin Community
ну можно кончено нафигачить генерацию в проксей в компайл-тайм, но это мусор и просадка производительности
источник

NY

Nikita Yatskivskiy in Kotlin Community
@nepherpitou а куда ты экстеншены закидываешь? В тот же файл, где и сам data class лежит?
источник

U

Unat in Kotlin Community
Nikita Yatskivskiy
@nepherpitou а куда ты экстеншены закидываешь? В тот же файл, где и сам data class лежит?
Да, я обычно несколько data class'ов в один файл собираю, сначала классы, потом extension'ы
источник

AE

Alexandr Emelyanov in Kotlin Community
Unat
Но суть вообще не в том, а в extension'ах на data class'ы
экстеншен на дата класс, как и на любой другой класс в том же модуле без мультитаргета - глупо
источник

AE

Alexandr Emelyanov in Kotlin Community
хотя дело вкуса
источник

U

Unat in Kotlin Community
Alexandr Emelyanov
экстеншен на дата класс, как и на любой другой класс в том же модуле без мультитаргета - глупо
почему? Меньше шума в описании структуры.
источник

AE

Alexandr Emelyanov in Kotlin Community
если не подразумевается несколько поключаемых скоупов расширений для класса
источник

U

Unat in Kotlin Community
Ну и extension'ы там типа "дай дату" при наличии timestamp'а
источник

U

Unat in Kotlin Community
А вот запихивать методы внутрь data class'ов, а то ещё и var внутри делать - это уже, как по мне, моветон.
источник

NY

Nikita Yatskivskiy in Kotlin Community
Unat
Ну и extension'ы там типа "дай дату" при наличии timestamp'а
Хах, как раз сейчас такую же функцию хотел экстеншеном сделать)
источник

NY

Nikita Yatskivskiy in Kotlin Community
И тоже показалось, что ей не место в самом классе
источник

U

Unat in Kotlin Community
Плюс, такие extension'ы можно объявлять как val и не бояться за сериализаторы
источник

VP

Vladimir Petrakovich in Kotlin Community
Nikita Yatskivskiy
Вполне и к котлину применим
Я просто оставлю это здесь
https://medium.com/@elizarov/extension-oriented-design-13f4f27deaee
источник