Size: a a a

Kotlin Community

2020 October 13

AM

Andrew Mikhaylov in Kotlin Community
Sergey Barmin
ну насчет некрасиво соглашусь, выглядит больше как костыль, нежелели решение
Ну это ж не финальный вариант, фидбек собирают, вперёд :)
источник

SB

Sergey Barmin in Kotlin Community
ну я ж правильно понимаю что именно типов мультиресиверов мы не получим?
источник

АО

Алексей Овсянников... in Kotlin Community
Это можно сделать даже через декораторы, но хотя бы как-то вроде

@with<Type1, Type2>
fun something() ...


Но даже это выглядит совсем не как экстеншен
источник

с#

саша сок #KotlinGang... in Kotlin Community
Sergey Barmin
ну я ж правильно понимаю что именно типов мультиресиверов мы не получим?
не факт
источник

SB

Sergey Barmin in Kotlin Community
когда условное with<T, R>.() является типом
источник

с#

саша сок #KotlinGang... in Kotlin Community
Алексей Овсянников
Это можно сделать даже через декораторы, но хотя бы как-то вроде

@with<Type1, Type2>
fun something() ...


Но даже это выглядит совсем не как экстеншен
вараргов дженериков ещё не придумали
источник

АО

Алексей Овсянников... in Kotlin Community
саша сок #KotlinGang
вараргов дженериков ещё не придумали
вот это жаль, да:)
источник

с#

саша сок #KotlinGang... in Kotlin Community
а костылить 2 ресивера, 3 ресивера и ... - такое
источник

AM

Andrew Mikhaylov in Kotlin Community
Алексей Овсянников
неочевиндо - потому что кто там внутри что ещё будет декарировать и как, не ясно, а тебе НЕ НУЖНО лишнего в функции, если ты ожидаешь в ней два ресивера
Некрасиво - потому что это получается как-то сбоку от основного ресивера и риторика мультиресивера, где все ресиверы одинаковые смещается в сторону мультиресивера с primary ресивером (имхо) (классы с primary constructor в пример, но там это было уместно)
костыльно - потому что это НЕ аннотация, НЕ функция, НЕ объект, но пишется через @, с типом, но при этом без каких-либо скобочек, а в итоге получается всё равно как-то сбоку
Так в кипе и было два варианта, упорядоченные и неупорядоченные. В текущем виде показали упорядоченные. Они, среди прочего, лучше ложатся на то, что есть уже сейчас, с экстеншнами, объявленными внутри классов.
источник

QH

Quantum Harmonizer in Kotlin Community
Алексей Овсянников
вот это жаль, да:)
Не стоит вскрывать эту тему :)
источник

АО

Алексей Овсянников... in Kotlin Community
Quantum Harmonizer
Не стоит вскрывать эту тему :)
🌚
источник

с#

саша сок #KotlinGang... in Kotlin Community
Quantum Harmonizer
Не стоит вскрывать эту тему :)
на самом деле не жаль
источник

с#

саша сок #KotlinGang... in Kotlin Community
непонятно как их обрабатывать
источник

AM

Andrew Mikhaylov in Kotlin Community
саша сок #KotlinGang
вараргов дженериков ещё не придумали
Ты их в крестах видел?..)))
источник

QH

Quantum Harmonizer in Kotlin Community
саша сок #KotlinGang
на самом деле не жаль
Учитывая дичайшую сложность фичи, согласен
источник

с#

саша сок #KotlinGang... in Kotlin Community
Andrew Mikhaylov
Ты их в крестах видел?..)))
я и не пропагандировал их завозить. я про то, что делать with<T1, T2> - неоч
источник

AM

Andrew Mikhaylov in Kotlin Community
саша сок #KotlinGang
я и не пропагандировал их завозить. я про то, что делать with<T1, T2> - неоч
Блин, я мимо, это был вопрос @InsanusMokrassar :)
источник

АО

Алексей Овсянников... in Kotlin Community
Andrew Mikhaylov
Ты их в крестах видел?..)))
ну я местами грущу без такого, но это вигня:) sealed interface'ов бы
источник

OY

Oleg Yukhnevich in Kotlin Community
Алексей Овсянников
неочевиндо - потому что кто там внутри что ещё будет декарировать и как, не ясно, а тебе НЕ НУЖНО лишнего в функции, если ты ожидаешь в ней два ресивера
Некрасиво - потому что это получается как-то сбоку от основного ресивера и риторика мультиресивера, где все ресиверы одинаковые смещается в сторону мультиресивера с primary ресивером (имхо) (классы с primary constructor в пример, но там это было уместно)
костыльно - потому что это НЕ аннотация, НЕ функция, НЕ объект, но пишется через @, с типом, но при этом без каких-либо скобочек, а в итоге получается всё равно как-то сбоку
а вот интересно, как часто нужны одинаково важные ресиверы, по сравнению с решением с primary ресивером
чаще всего, доп ресивер нужен для контекста какого-то, а сама уже ф-ию всё же вызывается на каком-то интсансе
чаще код будет такой: with(a) { b.foo()} чем такой with(a) { with(b) { foo() } }
и тогда, решение с декоратором with выглядит намного логичнее
источник

АО

Алексей Овсянников... in Kotlin Community
Алексей Овсянников
ну я местами грущу без такого, но это вигня:) sealed interface'ов бы
😊
источник