Close
What is wrong in the following code -
package main
import "fmt"
func main() { ch := make(chan int) go func() { for i := range 10 { ch <- i } }()
for { val := <-ch fmt.Println(val) }}
Solution #1 - Check the second argument of the return
package main
import "fmt"
func main() { ch := make(chan int) go func() { for i := range 10 { ch <- i } close(ch) }()
for { val, open := <-ch if !open { break } fmt.Println(val) }}
Solution #2 - Use range
package main
import "fmt"
func main() { ch := make(chan int) go func() { for i := range 10 { ch <- i } close(ch) }()
for val := range ch { fmt.Println(val) }}