Можно ли использовать продолжение в Котлине? Есть ли примеры?
В Котлине есть пакет для продолжения, но он помечен как экспериментальный. Там нет документации, кроме API, и нет учебника или примеров, где я мог бы найти. Кто-нибудь знает, можно ли его уже использовать? Что было бы примером его использования?
2 ответа
Continuation
Интерфейс является частью API поддержки сопрограмм в стандартной библиотеке. Вы можете начать изучение сопрограмм на странице документации или в хранилище библиотеки kotlinx.coroutines, которое содержит обширное руководство по программированию сопрограмм.
Сопрограммы экспериментальные в Kotlin 1.1 и 1.2, но было объявление, что они собираются стабилизироваться в 1.3.
Когда вы говорите "продолжения", вы на самом деле имеете в виду "сопрограммы". Продолжение является частью этой истории.
kotlin-coroutines-неофициальная команда JetBrains - отличный ресурс, чтобы начать с сопрограмм. Если вы хотите использовать их для асинхронного программирования на Android, особенно обратите внимание на раздел об упаковке обратных вызовов, которые предоставляет существующий асинхронный API, превращая существующие вызовы функций Java в Kotlin. suspend fun
s.
О статусе эксперимента, посмотрите ответ Романа Елизарова на этот вопрос. Вот основной момент:
Сопрограммы Kotlin могут и должны быть использованы в производстве. Это было главной причиной их официального выпуска в Kotlin 1.1. Выпустив их, команда JetBrains взяла на себя обязательство поддерживать обратную совместимость в отношении любых изменений, которые вносятся в них в второстепенных выпусках по мере их развития, в то же время позволяя людям безопасно использовать их в сложных производственных приложениях.
Нет абсолютно никакой причины ждать 1.3, чтобы начать использовать сопрограммы. Все, что вы пишете сегодня, будет работать в обозримом будущем без изменений, и, кроме того, будет очень легко переключиться с kotlinx.coroutines.experimental
в kotlinx.coroutines
после релиза. API-интерфейсы уже очень стабильны, и большинство изменений теперь касаются каналов и действующих лиц.