Size: a a a

Kotlin Community

2020 December 30

IP

Iaroslav Postovalov in Kotlin Community
это же просто стертый тип, который ансейф кастят
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Postovalov
это же просто стертый тип, который ансейф кастят
А кто мешает без хкт этот тип стереть и ансейфом скастить?
источник

IP

Iaroslav Postovalov in Kotlin Community
Alexander Nozik
А кто мешает без хкт этот тип стереть и ансейфом скастить?
отвратительно выглядит же
источник

IP

Iaroslav Postovalov in Kotlin Community
так и от дженериков можно было отказаться
источник

IP

Iaroslav Postovalov in Kotlin Community
неплохо же, да, самому ансейфом кастить
Vector v = new Vector();
v.add("kuku");
(String) v.get(0);
источник

IP

Iaroslav Postovalov in Kotlin Community
хкт - это редко используемое, но абсолютно естественное продолжение идеи дженериков
источник

AN

Alexander Nozik in Kotlin Community
Я с тобой не спорю. Вопрос дает ли оно что-то в этом конкретном случае
источник

IP

Iaroslav Postovalov in Kotlin Community
Alexander Nozik
Я с тобой не спорю. Вопрос дает ли оно что-то в этом конкретном случае
полиморфизм же, например:
val factories = listOf<FactoryOfA<ImplOfA<_>>>(A.Companion)
источник

IP

Iaroslav Postovalov in Kotlin Community
или например
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Postovalov
полиморфизм же, например:
val factories = listOf<FactoryOfA<ImplOfA<_>>>(A.Companion)
А можно реальный пример? Вот давай для математики, надо сделать операции, которые работали бы на дженеричных типах и подставлялись бы в зависимости от типа того на чем они вызываются. В KMath архитектура построена специально таким образом, чтобы не нужен был никакой HKT, но вот представим, что у тебя есть волшебная палочка и ты можешь творить, что хочешь. Можешь написать лучше?
источник

IP

Iaroslav Postovalov in Kotlin Community
fun FactoryOfA<SomeType>.someTypes(value: SomeType): A<SomeType> = ...
источник

IP

Iaroslav Postovalov in Kotlin Community
Alexander Nozik
А можно реальный пример? Вот давай для математики, надо сделать операции, которые работали бы на дженеричных типах и подставлялись бы в зависимости от типа того на чем они вызываются. В KMath архитектура построена специально таким образом, чтобы не нужен был никакой HKT, но вот представим, что у тебя есть волшебная палочка и ты можешь творить, что хочешь. Можешь написать лучше?
так это на самом деле для Buffer + BufferFactory и есть...
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Postovalov
так это на самом деле для Buffer + BufferFactory и есть...
Ну так тебе все равно BufferFactory на каждый тип писать надо. Как ни крути
источник

IP

Iaroslav Postovalov in Kotlin Community
Alexander Nozik
Ну так тебе все равно BufferFactory на каждый тип писать надо. Как ни крути
да, но оно тайпсейфно. можно получить ListBuffer какой-то фигни, зная, что это ListBuffer
источник

AN

Alexander Nozik in Kotlin Community
Вся разница только в том, можно ли подставлять эту фабрику по типу или надо передавать ее явно. Я за явно.
источник

AN

Alexander Nozik in Kotlin Community
И у нас, кстати сделан автоматический вывод типа буфера по ограниченному количеству вариантов. По сути - это либная реализация имплиситов.
источник

IP

Iaroslav Postovalov in Kotlin Community
Alexander Nozik
И у нас, кстати сделан автоматический вывод типа буфера по ограниченному количеству вариантов. По сути - это либная реализация имплиситов.
ну вот что это такое?
источник

IP

Iaroslav Postovalov in Kotlin Community
некрасиво же
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Postovalov
некрасиво же
А как тебе тут хкт поможет?
источник

AN

Alexander Nozik in Kotlin Community
Там в общем случае два разных буфера
источник