Я пытаюсь использовать диапазон и закрытие канала, чтобы лучше это понять. Ниже приведен пример кода, который я попробовал на основе моего понимания.
После выполнения кода ниже я получаю сообщение об ошибке, указанное ниже кода.
Код:
package main
import (
"fmt"
)
func main() {
str := "hello"
hiChannel := make(chan string, 5)
for j := 1; j <= 5; j++ {
go func(hi string) {
hiChannel <- hi
}(str)
}
defer close(hiChannel)
for s := range hiChannel {
fmt.Println(s)
}
}
Ошибка:
go run restsample/restsample.go
hello
hello
hello
hello
hello
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan receive]:
main.main()
C:/Users/Indian/personal/Workspaces/Learning/src/restsample/restsample.go:16 +0x169
exit status 2