Size: a a a

Kotlin Community

2020 March 25

AN

Alexander Nozik in Kotlin Community
Boris Vanin
По сути, ведь, не видно принципиальной проблемы определять коефиг или его часть аннотациями
Можно сделать аннотациями, тут особой проблемы нет, но тут комплексное решение, которое решает несколько проблем сразу
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Можно сделать аннотациями, тут особой проблемы нет, но тут комплексное решение, которое решает несколько проблем сразу
Хорошо, я почитаю, поторопился, сорри
источник

AN

Alexander Nozik in Kotlin Community
Главное - это тайп-классы закрываются
источник

AN

Alexander Nozik in Kotlin Community
В хорошем смысле
источник

BV

Boris Vanin in Kotlin Community
Я не до конца понял детали
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Я не до конца понял детали
Ну там много что в кипе написано на эту тему, но можем обсудить
источник

BV

Boris Vanin in Kotlin Community
Возможно надо больше примеров
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Возможно надо больше примеров
Собственно я предложил перекрыть кейс тайп-классов. Вместо того, чтобы гонять имплиситы аля скала, мы объявляем синглетон в качестве ресивера для всего класса, либо интерфейс, который может работать как extension interface, который может явно задан извне
источник

BV

Boris Vanin in Kotlin Community
Если написать use someinterface оттуда реализация будет браться?
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Если написать use someinterface оттуда реализация будет браться?
Она должна быть подставлена явно в месте вызова.
источник

AN

Alexander Nozik in Kotlin Community
При этом если в месте вызова тоже прописать file-level context, то ничего явно проставлять не надо, он будет пробрасываться
источник

BV

Boris Vanin in Kotlin Community
Думаю, пример на каком-то реальном кейзе тут решил бы кучу проблем понимания
источник

AN

Alexander Nozik in Kotlin Community
Я попробую потом добавить. Мой типичный пример - это использование разных алгебр в зависимости от того, с чем работаем, правда там еще дженерики нужны, а с ними все усложняется
источник

AO

Alexey Otts in Kotlin Community
Как это вообще опять относится к тайп классам? 🤦‍♂️
источник

AO

Alexey Otts in Kotlin Community
Ну не решает оно тех же проблем, что решают тайп классы
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Ну не решает оно тех же проблем, что решают тайп классы
Оно решает те же праблемы. Только байндинг в другом месте происходит.
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Оно решает те же праблемы. Только байндинг в другом месте происходит.
Как? Тайп классы это про ad hoc полиморфизм, как это сюда присобачить вообще?
источник

BV

Boris Vanin in Kotlin Community
Я тоже пока не понял как это решает, но я думаю, хороший пример многое объяснит
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Как? Тайп классы это про ad hoc полиморфизм, как это сюда присобачить вообще?
Будет тут ваш полиморфизм, просто в интерфейсе определяются экстеншен методы с полиморфизмом вместе
источник

AN

Alexander Nozik in Kotlin Community
Тут даже HKT ваше любимое реализуется.
источник