Вступить в клуб →
лёгкаявопросКонкурентность: горутины, каналы, context

Чтение из закрытого и вычитанного канала

Продюсер отправил два значения и закрыл канал, потребитель всё вычитал и читает ещё раз:

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` — вернётся последнее переданное значение

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела