package chan_test import ( "fmt" "testing" ) func TestClose(t *testing.T) { ch := make(chan int) close(ch) <-ch <-ch <-ch println("ok") } type Tuple[K comparable, V any] struct { K K V V } func TestWalk(t *testing.T) { tch := make(chan *Tuple[int, string], 100) go func() { for n := 1; n < 10000; n++ { s := fmt.Sprint("V", n) tch <- &Tuple[int, string]{n, s} } close(tch) }() for a := range tch { println(a.K, a.V) } }