"+" En Kotlin Coroutines?

Este es un código de ejemplo para una Cancelación a través de un trabajo explícito para Kotlin Coroutines:

fun main(args: Array<String>) = runBlocking<Unit> { val job = Job() // create a job object to manage our lifecycle // now launch ten coroutines for a demo, each working for a different time val coroutines = List(10) { i -> // they are all children of our job object launch(coroutineContext + job) { // we use the context of main runBlocking thread, but with our own job object delay((i + 1) * 200L) // variable delay 200ms, 400ms, ... etc println("Coroutine $i is done") } } println("Launched ${coroutines.size} coroutines") delay(500L) // delay for half a second println("Cancelling the job!") job.cancelAndJoin() // cancel all our coroutines and wait for all of them to complete } 

Estoy confundido acerca de + en la expresión coroutineContext + job ?

¿Qué está haciendo? ¿Se está sobrescribiendo el operador?

Es un ejemplo de sobrecarga del operador . A continuación, se muestra la documentation del método CoroutineContext::plus :

 open operator fun plus(context: CoroutineContext): CoroutineContext 

Devuelve un context que contiene elementos de este context y elementos de otro context. Los elementos de este context con la misma key que en el otro se descartan.

Es básicamente una combinación de dos contexts.