Size: a a a

Kotlin Community

2020 May 14

AN

Alexander Nozik in Kotlin Community
Там нет никакого взаимодействия. Все состояние строго инкапсулировано и вызывается синхронно. Ну можете назвать это ограниченной корутиной если это разрешит спор. Это точно не полноценная корутина.
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Там нет никакого взаимодействия. Все состояние строго инкапсулировано и вызывается синхронно. Ну можете назвать это ограниченной корутиной если это разрешит спор. Это точно не полноценная корутина.
yield() - это и есть это самое взаимодействие, когда управление кооперативно передаётся другому коду
источник

VP

Vladimir Petrakovich in Kotlin Community
Я не понимаю, откуда утверждение, что что-то должно вызываться асинхронно
источник

LW

LexSv W in Kotlin Community
Vladimir Petrakovich
Это что и зачем?
Статья где хорошо объясняется зачем suspend
источник

VP

Vladimir Petrakovich in Kotlin Community
LexSv W
Статья где хорошо объясняется зачем suspend
Там вообще про отмену в structured concurrency
источник

BP

Bogdan Panchenko in Kotlin Community
@noraltavir скорей имеет ввиду что по факту с генерируется  обычный синхронный код, который легко заменяется на цикл
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Там нет никакого взаимодействия. Все состояние строго инкапсулировано и вызывается синхронно. Ну можете назвать это ограниченной корутиной если это разрешит спор. Это точно не полноценная корутина.
Вся их ограниченность в том, что средства языка заставляют приостанавливаться только в yield(), чтобы при приостановке было готово следующее значение в итераторе. Других отличий нет.
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
@noraltavir скорей имеет ввиду что по факту с генерируется  обычный синхронный код, который легко заменяется на цикл
Смысл в том, что sequence не уводит нас в суспед мир и результат вообще говоря не корутина, а обычный итератор
источник

BP

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

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Смысл в том, что sequence не уводит нас в суспед мир и результат вообще говоря не корутина, а обычный итератор
С одной стороны обычный, а с другой - внутри себя получающий следующее значение вызовом корутины до следующей точки приостанова
источник

BP

Bogdan Panchenko in Kotlin Community
yield - просто сетит значения nextValue им ставит влаг чтения
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
С одной стороны обычный, а с другой - внутри себя получающий следующее значение вызовом корутины до следующей точки приостанова
что равняется следущей итерации
источник

VP

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

BP

Bogdan Panchenko in Kotlin Community
ну да)
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
С одной стороны обычный, а с другой - внутри себя получающий следующее значение вызовом корутины до следующей точки приостанова
Хорошо. В рамках одной взятой функции можно считать, что корутина. Хотя это несколько специфичная формулировка
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Хорошо. В рамках одной взятой функции можно считать, что корутина. Хотя это несколько специфичная формулировка
да вроде нет
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Хорошо. В рамках одной взятой функции можно считать, что корутина. Хотя это несколько специфичная формулировка
Ну так эта функция может вызывать другие suspend-функции с тем же ресивером. В общем, всё то же самое, только нельзя вызывать что-то левое.
источник

AN

Alexander Nozik in Kotlin Community
Bogdan Panchenko
да вроде нет
Ну Владимир считает что если Континуация есть, значит корутина. В таком определении - да.
источник

VP

Vladimir Petrakovich in Kotlin Community
Continuation, приостановки, стейт-машина есть
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну просто в котлине других корутин и нет 🤷‍♂️
источник