Можно ли использовать продолжение в Котлине? Есть ли примеры?

В Котлине есть пакет для продолжения, но он помечен как экспериментальный. Там нет документации, кроме API, и нет учебника или примеров, где я мог бы найти. Кто-нибудь знает, можно ли его уже использовать? Что было бы примером его использования?

2 ответа

Решение

Continuation Интерфейс является частью API поддержки сопрограмм в стандартной библиотеке. Вы можете начать изучение сопрограмм на странице документации или в хранилище библиотеки kotlinx.coroutines, которое содержит обширное руководство по программированию сопрограмм.

Сопрограммы экспериментальные в Kotlin 1.1 и 1.2, но было объявление, что они собираются стабилизироваться в 1.3.

Когда вы говорите "продолжения", вы на самом деле имеете в виду "сопрограммы". Продолжение является частью этой истории.

kotlin-coroutines-неофициальная команда JetBrains - отличный ресурс, чтобы начать с сопрограмм. Если вы хотите использовать их для асинхронного программирования на Android, особенно обратите внимание на раздел об упаковке обратных вызовов, которые предоставляет существующий асинхронный API, превращая существующие вызовы функций Java в Kotlin. suspend funs.

О статусе эксперимента, посмотрите ответ Романа Елизарова на этот вопрос. Вот основной момент:

Сопрограммы Kotlin могут и должны быть использованы в производстве. Это было главной причиной их официального выпуска в Kotlin 1.1. Выпустив их, команда JetBrains взяла на себя обязательство поддерживать обратную совместимость в отношении любых изменений, которые вносятся в них в второстепенных выпусках по мере их развития, в то же время позволяя людям безопасно использовать их в сложных производственных приложениях.

Нет абсолютно никакой причины ждать 1.3, чтобы начать использовать сопрограммы. Все, что вы пишете сегодня, будет работать в обозримом будущем без изменений, и, кроме того, будет очень легко переключиться с kotlinx.coroutines.experimental в kotlinx.coroutines после релиза. API-интерфейсы уже очень стабильны, и большинство изменений теперь касаются каналов и действующих лиц.

Другие вопросы по тегам