Чтение из закрытого и вычитанного канала
Продюсер отправил два значения и закрыл канал, потребитель всё вычитал и читает ещё раз:
ch := make(chan int, 2)
ch <- 1
ch <- 2
close(ch)
fmt.Println(<-ch)
fmt.Println(<-ch)
v, ok := <-ch
fmt.Println(v, ok)
Чем закончится последнее чтение?
- Напечатает `0 false` — канал закрыт и пуст
- Горутина навсегда заблокируется на чтении
- Паника: чтение из закрытого канала запрещено
- Напечатает `2 true` — вернётся последнее переданное значение
