Sobes.tech
Junior — Senior
53

Определение вывода из горутин при захвате переменной цикла

Условие задачи

Определите, какие строки будут напечатаны, учитывая, как замыкается переменная цикла внутри горутины.

package main

import (
    "fmt"
)

func main() {
    out := make(chan string, 3)

    for i := 0; i < 5; i++ {
        go func() {
            out <- fmt.Sprintf("Goroutine %d", i)
        }()
    }
}

func ReceiveFromCh(ch chan string) {
    // log job
    fmt.Println(<-ch)
}