Size: a a a

Kotlin Community

2020 February 21

AO

Alexey Otts in Kotlin Community
Human
Ну да получается JVM, спасибо. А на скале тоже есть такая проблема?
да
источник

SB

Sergey Barmin in Kotlin Community
кстати, а по поводу typealias, это единственный способ сделать nullable функциональный тип?
источник

AM

Andrew Mikhaylov in Kotlin Community
Sergey Barmin
кстати, а по поводу typealias, это единственный способ сделать nullable функциональный тип?
Да нет, ((Int) -> String)? вполне себе работает
источник

SB

Sergey Barmin in Kotlin Community
Andrew Mikhaylov
Да нет, ((Int) -> String)? вполне себе работает
хм, спасибо
источник

H

Human in Kotlin Community
Мне нужно сделать либу, мб накинете идей, суть такая:
Либа конечный автомат с абстракциями для простых текстовых ботов.
В примере типа заказ пиццы. Сначала отдаем пользователю бота Select-ор, потом в другой функции обрабатываем результат String. А например если отдаем NumberQuestion, то должено вернуться Integer. Поэтому есть две функции обработчика, один отдает нужно пользователю, а другой обрабатывает результат.
Как внутри Select и NumberQuestion работает это деталь реализации, те мб для телеги это одно будет а для фб другое.

Пример:
https://pastebin.com/7iXmPaU9
источник

H

Human in Kotlin Community
Должно быть можно расширять, те добавлять новые типы из других модулей по типу Select и NumberQuestion.
источник

AM

Andrew Mikhaylov in Kotlin Community
Sergey Barmin
хм, спасибо
источник

H

Human in Kotlin Community
А то что я хочу получить так это проверку типов. Что если первый обработчик это NumberQuestion то второй точно принимает Integer
источник

AN

Alexander Nozik in Kotlin Community
Human
Почему в котлине нельзя сделать так
fun ask(s: (String) -> Unit){

}
fun ask(s: (Int) -> Unit){

}

Это из-за совместимости с джавой?
В котлине можно, в JVM нельзя, а так смотрите выше комментарии
источник

RE

Roman Elizarov in Kotlin Community
В котлине тоже _пока_ нельзя. Будет работать только с новым type inference.
источник

AN

Alexander Nozik in Kotlin Community
Roman Elizarov
В котлине тоже _пока_ нельзя. Будет работать только с новым type inference.
Мне казалось, что я делал, но наверное ошибаюсь...
источник

AO

Alexey Otts in Kotlin Community
Roman Elizarov
В котлине тоже _пока_ нельзя. Будет работать только с новым type inference.
А как оно будет на уровне байт-кода? Метод с другим названием?
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
А как оно будет на уровне байт-кода? Метод с другим названием?
Мы же про котлин, а не про байткод. В байткоде JvmName
источник

AO

Alexey Otts in Kotlin Community
Alexander Nozik
Мы же про котлин, а не про байткод. В байткоде JvmName
Ну на разных бекендах же оно должно будет как то разруливаться. Меня интересует конкретно jvm
источник

AN

Alexander Nozik in Kotlin Community
Alexey Otts
Ну на разных бекендах же оно должно будет как то разруливаться. Меня интересует конкретно jvm
Не надо путать язык и platform declaration clash. Я думаю, что на JVM лучше, чем ручной JVMName не сделаешь
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Не надо путать язык и platform declaration clash. Я думаю, что на JVM лучше, чем ручной JVMName не сделаешь
Автоматический!
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
Автоматический!
а чем это хорошо? С манглингом и так проблемы
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
а чем это хорошо? С манглингом и так проблемы
Ну приятный бонус, ну хотелось что бы не которые банальные функции сама аннотацию вешала
источник
2020 February 22

DV

Dmitriy Volkovskiy in Kotlin Community
Bogdan Panchenko
Ну приятный бонус, ну хотелось что бы не которые банальные функции сама аннотацию вешала
Не забывайте про интероп с джавой. Я могу захотеть вызвать этот метод в джаве, и буду удивлен, если имя будет другим. Не надо никакой магии
источник

E

EvGem in Kotlin Community
>Use [buffer] operator on the flow before calling produce to specify a value other than defaultproduce to specify a value other than default
Что имеется в виду под produce?
источник