Size: a a a

Kotlin Community

2020 May 14

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Конкретно этот реализован на корутинах
на суспендах. На механизме компиллятора
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Вы корутины и suspend не путаете? Впрочем, не буду спорить о терминах. Елизаров придет, рассудит, если захочет
Трудно спутать корутины с ключевым словом 🙂
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
на суспендах. На механизме компиллятора
А что делает suspend, если не создаёт корутину?
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Вы корутины и suspend не путаете? Впрочем, не буду спорить о терминах. Елизаров придет, рассудит, если захочет
Да там корунтина создаётся
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
А что делает suspend, если не создаёт корутину?
Передает контекст и говорит компилятору нарезать выполнение на колбэки. Он ничего не создает
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
А что делает suspend, если не создаёт корутину?
Это метка что функция может приостановится, дорого на каждый саспенд делать корунтину
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Передает контекст и говорит компилятору нарезать выполнение на колбэки. Он ничего не создает
Так эти коллбеки + состояние по сути и есть корутина, разве нет?
источник

Д

Дмитрий in Kotlin Community
Bogdan Panchenko
Ну он просто отправляет значения в последовательность. Очень грубо: list.add
Можно же просто так написать без yield?  
val seq = 0..10
   seq.forEach {
       print("$it ")
   }
источник

AN

Alexander Nozik in Kotlin Community
Дмитрий
Можно же просто так написать без yield?  
val seq = 0..10
   seq.forEach {
       print("$it ")
   }
Можно, но тогда там нет Sequence
источник

VP

Vladimir Petrakovich in Kotlin Community
Дмитрий
Можно же просто так написать без yield?  
val seq = 0..10
   seq.forEach {
       print("$it ")
   }
А теперь давайте то же самое, только вместо 0..10 первые 10 чисел Фибоначчи
источник

BP

Bogdan Panchenko in Kotlin Community
Дмитрий
Можно же просто так написать без yield?  
val seq = 0..10
   seq.forEach {
       print("$it ")
   }
Да можно, это просто пример что было понятно
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Так эти коллбеки + состояние по сути и есть корутина, разве нет?
У Ильмира где-то в лекции было первое историческое определение. Оно примерно близко к тому, что вы хотите.  Но если взять определение из википедии, то нет.
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Так эти коллбеки + состояние по сути и есть корутина, разве нет?
Не совсем, там же была обычная стейт машина. Это "колбек" на минималках
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
У Ильмира где-то в лекции было первое историческое определение. Оно примерно близко к тому, что вы хотите.  Но если взять определение из википедии, то нет.
источник

AN

Alexander Nozik in Kotlin Community
вызывается то, что сгенерировал компилятор. Принципиальная разница между последовательностями и, скажем Flow. в том, что последовтальности синхронные. Механика аналогичная.
источник

BP

Bogdan Panchenko in Kotlin Community
createCoroutineUnintercepted - правильно ли я понмаю что тут создается корунтина которая не производит "переключений"
источник

BP

Bogdan Panchenko in Kotlin Community
Bogdan Panchenko
createCoroutineUnintercepted - правильно ли я понмаю что тут создается корунтина которая не производит "переключений"
вывод; нет стейт машины
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
У Ильмира где-то в лекции было первое историческое определение. Оно примерно близко к тому, что вы хотите.  Но если взять определение из википедии, то нет.
источник

LW

LexSv W in Kotlin Community
Vladimir Petrakovich
А что делает suspend, если не создаёт корутину?
источник

VP

Vladimir Petrakovich in Kotlin Community
Это что и зачем?
источник