Size: a a a

Kotlin Community

2020 October 20

АО

Алексей Овсянников... in Kotlin Community
Алексей Овсянников
Ожидалась строка, найдено число, позиция n, поле fieldName, актуальное значение actualValue (если возможно)
Ну и подсластить кусочком из оригинального инпута
источник

АО

Алексей Овсянников... in Kotlin Community
Алексей Овсянников
Ожидалась строка, найдено число, позиция n, поле fieldName, актуальное значение actualValue (если возможно)
Конкретно такое описание, мне кажется, вполне реально сделать хотя бы для json
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
смотрите что нашёл
веточка с тестами прототипа мультиресиверов :)
там сейчас with как soft keyword
и оно там даже для классов похоже работает и с дженериками
https://github.com/JetBrains/kotlin/compare/rr/shadrina/multiple-receivers-testing#diff-e4bf05e96a4e68dd600926aa8fa4db6c40578e03614b2bac22d46810cfa249c4`
Ну там очень ранний прототип (я видел доклад по этому поводу, но не хотел светить так как инсайд, но раз уж нашли...)
источник

АО

Алексей Овсянников... in Kotlin Community
Oleg Yukhnevich
смотрите что нашёл
веточка с тестами прототипа мультиресиверов :)
там сейчас with как soft keyword
и оно там даже для классов похоже работает и с дженериками
https://github.com/JetBrains/kotlin/compare/rr/shadrina/multiple-receivers-testing#diff-e4bf05e96a4e68dd600926aa8fa4db6c40578e03614b2bac22d46810cfa249c4`
Я, если честно, так и не понял, как они это в типах описывать собираются
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Я, если честно, так и не понял, как они это в типах описывать собираются
Псевдо-аннотациями. Но как сделать эти декораторы прозрачными я пока не очень представляю. Синтаксис-то сам нормальный вполне.
источник

АО

Алексей Овсянников... in Kotlin Community
Ну то есть как выразить примерно такую запись с with

val something: (Type1, Type2).() -> Unit
источник

АО

Алексей Овсянников... in Kotlin Community
Alexander Nozik
Псевдо-аннотациями. Но как сделать эти декораторы прозрачными я пока не очень представляю. Синтаксис-то сам нормальный вполне.
Пожалуйста, не надо аннотаций
источник

АО

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

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Пожалуйста, не надо аннотаций
А они не аннотации
val something: @with<Type1,Type2> ()->Unit
источник

AN

Alexander Nozik in Kotlin Community
Мне тоже пока вариант со скобочками больше нравится
источник

АО

Алексей Овсянников... in Kotlin Community
Alexander Nozik
А они не аннотации
val something: @with<Type1,Type2> ()->Unit
Ну и в итоге получается, что всё равно новый синтаксис, всё равно лопатить компилятор. Мне просто не совсем понятно, на чем они хотят сэкономить
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Ну и в итоге получается, что всё равно новый синтаксис, всё равно лопатить компилятор. Мне просто не совсем понятно, на чем они хотят сэкономить
На сущностях. Так одна сущность и на декораторы и на мультиресиверы
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
А они не аннотации
val something: @with<Type1,Type2> ()->Unit
Не очень понятно, что в типе делает конкретный декоратор
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Не очень понятно, что в типе делает конкретный декоратор
Я не понял вопроса
источник

АО

Алексей Овсянников... in Kotlin Community
Alexander Nozik
На сущностях. Так одна сущность и на декораторы и на мультиресиверы
Не понял, если честно
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Не понял, если честно
Ну декораторы - клевая штука. По-моему никто не спорит. А тут как бы попытка этими же декораторами перекрыть еще и мультиресиверы, чтобы добавлять одну фичу, а не две.
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Я не понял вопроса
with сам по себе - это обычный декоратор, разве нет?
А в типе функции должны быть типы ресиверов, а не декораторы, которые в ней используются.
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
with сам по себе - это обычный декоратор, разве нет?
А в типе функции должны быть типы ресиверов, а не декораторы, которые в ней используются.
Ну компоузабл - это обычная функция, но ее можно использовать только в определенном месте. Так и тут, функцию с таким декоратором можно будет использовать только в определенном скоупе
источник

AN

Alexander Nozik in Kotlin Community
Все проблемы сводятся к тому, что на декораторе не написаны явно его типы. Как сделать это прозрачным - не понятно
источник

АО

Алексей Овсянников... in Kotlin Community
Alexander Nozik
Ну декораторы - клевая штука. По-моему никто не спорит. А тут как бы попытка этими же декораторами перекрыть еще и мультиресиверы, чтобы добавлять одну фичу, а не две.
Ну, во-первых, это выдают за две. Во-вторых - а что декоратор делает в типе-то? Декоратор - это по-сути сахар для избегания лесенок, => это часть тела функции
источник