Size: a a a

Kotlin Community

2020 February 14

AN

Alexander Nozik in Kotlin Community
Чего-то я туплю. Какой сейчас самый модный способ прокидывать скоуп внутрь лямбды?
источник

AZ

Alexander Zalutskiy in Kotlin Community
Интересный код kotlin генерирует на when конструкции по sealed class. больше всего нравиться return
источник

I

Igor in Kotlin Community
Alexander Zalutskiy
Интересный код kotlin генерирует на when конструкции по sealed class. больше всего нравиться return
Ты куда-то не туда смотришь, котлин генерит байткод)
источник

AZ

Alexander Zalutskiy in Kotlin Community
Igor
Ты куда-то не туда смотришь, котлин генерит байткод)
Это декомпилированный в Java байт-код
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Zalutskiy
Интересный код kotlin генерирует на when конструкции по sealed class. больше всего нравиться return
return Unit никак не связан с when
источник

AZ

Alexander Zalutskiy in Kotlin Community
Quantum Harmonizer
return Unit никак не связан с when
Это то, что произойдет если у меня в when попало что-то не предсказуемое. Чего там быть не должно
источник

AZ

Alexander Zalutskiy in Kotlin Community
when (val validated = validator.validateTags(tags)) {
   is Valid -> {
       doWork()
   }
   is Invalid -> throw validated.e
}
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Zalutskiy
when (val validated = validator.validateTags(tags)) {
   is Valid -> {
       doWork()
   }
   is Invalid -> throw validated.e
}
Что-то здесь не видно return. А что снаружи, лямбда?
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Чего-то я туплю. Какой сейчас самый модный способ прокидывать скоуп внутрь лямбды?
Это как?
источник

AZ

Alexander Zalutskiy in Kotlin Community
Vladimir Petrakovich
Что-то здесь не видно return. А что снаружи, лямбда?
Да не особо важно что тут return. Я могу прокинуть в код что угодно и даже не получу exception. Просто ничего не произойдёт
источник

AZ

Alexander Zalutskiy in Kotlin Community
Vladimir Petrakovich
Что-то здесь не видно return. А что снаружи, лямбда?
Да. Лямбда
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Zalutskiy
Да. Лямбда
Ну вот, лямбда скорее всего реализует Function<Unit, ...>. Что там ещё можно ожидать, если не вот это?
источник

VP

Vladimir Petrakovich in Kotlin Community
В чём интересность?
источник

AZ

Alexander Zalutskiy in Kotlin Community
Ожидать, что программа упадёт, если я каким-либо образом в when прокину не наследника Validated
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Zalutskiy
Ожидать, что программа упадёт, если я каким-либо образом в when прокину не наследника Validated
Так этот when не exhaustive, она не должна падать
источник

AZ

Alexander Zalutskiy in Kotlin Community
Vladimir Petrakovich
Так этот when не exhaustive, она не должна падать
Validated - sealed class имеющий 2 наследника. Почему это оно не exhaustive?)
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Zalutskiy
Validated - sealed class имеющий 2 наследника. Почему это оно не exhaustive?)
Потому что результат when не используется. Тут скорее не про байт-код вопрос, а про язык.
источник

VP

Vladimir Petrakovich in Kotlin Community
Вы можете добавить туда 3-го наследника и ничего не изменится
источник

AZ

Alexander Zalutskiy in Kotlin Community
Vladimir Petrakovich
Вы можете добавить туда 3-го наследника и ничего не изменится
Если я добавлю 3-его, то компилятор вроде должен попросить меня добавить else или missed branch
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Zalutskiy
Если я добавлю 3-его, то компилятор вроде должен попросить меня добавить else или missed branch
А вы попробуйте 😉
источник