Анонс был, а прикладных примеров еще не было. Внутри примеры с тем как делать логирование и DI.
Из приятных плюсов:
- Убирает шаблонный код
- Повышение читабельности и поддерживаемости
- Типобезопасность
Пример комбинации с Extension функцией:
// Extension function with context parameter
context(txManager: TransactionManager)
fun List<Transaction>.processAllInTransaction() {
txManager.beginTransaction()
try {
forEach { it.process() }
txManager.commitTransaction()
} catch (e: Exception) {
txManager.rollbackTransaction()
throw e
}
}
// Usage
with(transactionManager) {
transactions.processAllInTransaction()
}