typestar

Canales en Go

Tuberías tipadas que llevan valores entre goroutines.

func produce(n int) <-chan int {
    out := make(chan int)
    go func() {
        defer close(out)
        for i := 1; i <= n; i++ {
            out <- i * i
        }
    }()
    return out
}

func consume(in <-chan int) int {
    total := 0
    for v := range in {
        total += v
    }
    return total
}

Cómo funciona

  1. Un productor envía y luego hace close del canal.
  2. <-chan int es un tipo de canal de solo recepción.
  3. range sobre un canal termina cuando este se cierra.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
235
Tokens
77
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 46 segundos.

Escribe este fragmento

Paso 3 de 4 en Canales; paso 6 de 25 en Concurrencia.

← Anterior Siguiente →