Исправить панику при отправке в закрытый канал
Условие задачи
В представленном коде возникает паника panic: send on closed channel, так как main закрывает канал ch, не дождавшись завершения горутины, которая в это время пытается отправить в канал значение. Исправить поведение таким образом, чтобы программа завершалась корректно.
gopackage main
import (
"fmt"
"time"
)
func main() {
ch := make(chan int)
go func() {
ch <- 1
}()
time.Sleep(time.Millisecond * 500)
close(ch)
for i := range ch {
fmt.Println(i)
}
time.Sleep(time.Millisecond * 100)
}